https://forum.nim-lang.org/t/9850