Let's say I have an object at some specific memory address.
Am I safe that the GC won't move it around? And, if not, how could I make sure it won't?
Do we have a moving GC for Nim at all? D does not have one, see
https://dlang.org/spec/garbage.html#obj_pinning_and_gc
I assume with a moving GC there could be a problem when we have a Nim ref object, cast its address to ptr, pass it to a C lib and call GC_ref to assure lifetime, get it back from C lib and cast to ref object. So maybe GC_ref could prohibit moving?