Imperative programming: Nim doesn't ban assignments.
OO: Nim has subtyping and multi methods.
FP: Nim has first class functions, shallow immutability (let) and exhaustiveness checking for case statements.
Meta programming: Nim has a hygienic AST based macro system.