Honestly, there are less drastic solutions to these problems. Some languages (forgot which) simply forbid mixing tabs and spaces when the tab size makes the code ambiguous. And their C example will generate an "ambiguous else" warning in D, which you can disambiguate by adding braces.
Here's the reasoning: https://github.com/Araq/Nim/wiki/Whitespace-FAQ#tabs-vs-spac...
If you still want tabs you can add this at the top of your files and they work:
> - Identifiers are case and underscore-insensitive (FOO_BAR === fooBar === fo_ob_ar)This changed recently, now the first letter is considered case sensitive: http://nim-lang.org/manual.html#identifier-equality