- Use `camelCase` for variables, procedures, and fields; use `PascalCase` for types and `SCREAMING_SNAKE_CASE` for constants — follow the Nim standard library naming convention.
- Prefer `func` over `proc` for pure procedures with no side effects — the compiler enforces the no-side-effect contract and enables optimization.
- Use `result` instead of explicit `return` statements — the implicit `result` variable is idiomatic Nim and avoids premature function exits.
- Use object variants (`case kind: MyEnum of ...`) instead of inheritance hierarchies for closed sum types — they are stack-allocated and exhaustively matched by the compiler.