> However, instead of creating a garbage collector that can handle this That seems to be very hard. You know D-lang had GC support from the beginning, and D-lang has bright devs. Now they try to follow Rust avoiding a GC, see
[https://www.reddit.com/r/programming/comments/cdifbu/ownership_and_borrowing_in_d](https://www.reddit.com/r/programming/comments/cdifbu/ownership_and_borrowing_in_d)/ [https://dlang.org/blog/2019/07/15/ownership-and-borrowing-in-d](https://dlang.org/blog/2019/07/15/ownership-and-borrowing-in-d)/ Nim has a good GC for single threaded applications, but maybe the newruntime with owned refs will be a even better solution.