Keep in mind che imho the ARC/ORC are basically broken at the moment and probably that's why refc it's still the default GC.
I experienced compiler crashes (internal error) <https://github.com/nim-lang/Nim/issues/19401> Finalizers not called with forward declarations: <https://github.com/nim-lang/Nim/issues/19402> WARNING: RANT MODE ON Destructors and move semantics documention is completely unusuable and lacking. I would write the missing bits my self if i got it but it's incromprensible and lacking. It's not clearly stated how it plays with both inheritance and ref types and lacks of parallelism with how it's implemented in other languages. Given that i undestand how it works in C++ and also in other languages i would say that "probably" (and i remark probably) there's something weird going on. Honestly the last working releases of Nim was 1.2. Both 1.4 and 1.6 are just work in progress releases with most of the new features left in a somewhat working state (arc/orc, threading, concepts) but never completed. I doubt i would use nim for any serious or even hobby projects