D supports local imports and has to deal with overloading. Nim supports the
following:
from foo import nil
block: # Start of scope
template someSymbolFromFoo(a: int): int = foo.someSymbolFromFoo(a)
type SomeTypeFromFoo = foo.SomeTypeFromFoo
# Use SomeTypeFromFoo and someSymbolFromFoo
# Pop scope. SomeTypeFromFoo and someSymbolFromFoo are not defined again.
So we can local "import" symbols from another module "artificially", we just need to automate it a bit =)
