> Nimrod's pointers to garbage collected memory are separate from the pointers you can allocate yourself.
Does this mean that they use different heaps?
No, they are on the same heap since the GC isn't a moving collector.
Does this mean that they use different heaps?
Also the GC is only triggered on a memory allocation. It doesn't run in a background thread or anything like that. So if the GC fails, then the allocation of memory fails (as I understand it) which means your scenario would be caught early.