Coming from python, I&#x27;m also surprised by the way Nim imports but I realised that it&#x27;s not the same sitution because nim uses unified function call (ufc) syntax to implement its method calls. Methods are functions that due to the UFC sugar can be used as methods and so everything needs to be imported from a module in order that methods are visible to the calling scope. This works better than you might expect since the correct function normally gets called due to static typing. Of course this doesn&#x27;t fix variable name collisions. I&#x27;d need to program more in nim though to decide how much of a problem this is.