Just tested [https://github.com/StefanSalewski/cdt](https://github.com/StefanSalewski/cdt)
That one is indeed not really tested yet, so I did not make a nimble package out of it to not pollute the nimble database. And it is again a bit complex. # with import fix: import dt, vectors, edges, types /tmp/cdt/src/cdt $ nim c --gc:arc test0.nim Run /tmp/cdt/src/cdt/edges.nim(15, 15) Warning: 'q.e[0].next = q.e[0]' creates an uncollectable ref cycle; annotate 'next' with .cursor [CycleCreated] /tmp/cdt/src/cdt/edges.nim(17, 15) Warning: 'q.e[2].next = q.e[2]' creates an uncollectable ref cycle; annotate 'next' with .cursor [CycleCreated] Run Crash with /tmp/cdt/src/cdt/vertices.nim(6) newVertex SIGSEGV: Illegal storage access. (Attempt to read from nil?) Run I have to learn what the warning means, maybe I will get it working then. Tomorrow I may test [https://github.com/StefanSalewski/minmaxheap](https://github.com/StefanSalewski/minmaxheap) but that one is so trivial that I am sure that it will work. Final note: RTree is fine indeed, I am using it already -- without --gc:arc