> bitsets I use them almost in every place, and I suppose the compiler does the same.
> exceptions I would not remove them, but it piss me off when they are used in the stardard modules. I'd rather check if the result is equals to -1 or is none than have to handle an exception when trying to stablish a new connection. > a huge standard library I do agree there seems to be really old modules that no one use anymore. But there are good reasons for having one: 1. Stuff that is so used that eventually a lot of alternatives would appear (the reason why options were finally added), making it confusing to work with projects that employ each one a different implementation. 2. You should consider whatever is published in nimble as dead aswell, so I would not rely important functionalities in there. In fact, everything that stopped being useful or used in the standard lib ended up being moved to nimble already. Now, system definitely does need a refactoring. You can find there strings, seqs, garbage collection, file handling, stream handling, exception handling ... I'm sure that everything related to files and GC could be separated from the main module. Not that you are going to stop the GC or open a new file in every module of your project. Also nim could use better names for modules. 'os', 'ospaths', 'osprocs' are confusing. Maybe rename osprocs to 'process', and 'ospaths' to 'paths'.
