> Such a mixture of styles would immediately trigger an error in Nim, as Result > and result are the same variable.
No. No, it wouldn't. Nim is neither case sensitive nor case insensitive, but rather it goes for [Partial Case Insensitivity](https://nim-lang.org/docs/manual.html#lexical-analysis-identifier-equality). Specifically, **the first letter of an identifier is case sensitive, while the rest is not**. This means that your example is wrong because in Nim: var Result: int = 0 for i in 0..<100: var result: int = f(x) if result < 0: result += g(x) Result += result Run compiles just fine and works as expected (`Result != result`). You're technically right about your second example (`myAccum == my_accum`), but this is very bad coding. **It 's not Nim's fault if you named different variables so similarly.** This is ultimately a design decision. There are languages that try to babysit the programmer, thinking that they're smarter than them. One big example of this is Rust. Nim is on the complete opposite of the spectrum. Nim rightly asserts that **not every problem should be solved by means of language design**. Most things are better relegated to coding practices, IDEs, syntax highlighters, autocompletion, etc. Naming variables is one of these things. **If you write code like the above, then no language feature will be enough to protect you from yourself**. [Basically this](https://quotesondesign.com/phil-karlton/)
