Completing my first answer with tings that came up after:
* `converters` currently are a bit unsafe. They can happily trigger ambiguous
calls when a converter to numeric type exist. I don't mind them going
especially if the int literals stuff is sorted out. Or it would be nice if we
could restrict implicit conversion like it can be done to template:
[https://github.com/nim-lang/Nim/issues/7520](https://github.com/nim-lang/Nim/issues/7520)
* `discardable`, I feel this should be explicit by default, too easy to
discard error codes. Can be moved to sugar.nim
* `TaintedString`: it's a good idea, reminds me a bit of the Haskell IO Monad
in practice though, a bit cumbersome to use. At the very least parseutils
should provide useful proc to deal with those otherwise I guess everyone is
just doing $tainted. Also it's another concept that will surprise
(delight/block?) newcomers.
* `methods`: I rely on them for the neural net part of Arraymancer, I don't
mind them going as long as the performance is similar of faster as I call them
several times per second and Nim's methods have very low overhead especially
when inlined (only 3x the proc cost).
* `do`: Yeah it's a super strange notation, I do need a way to have multiline
arguments though.