&gt; due to lack of GC or tail recursion<p>(1) I&#x27;m pretty sure that everything that can be done by a GC can be done by `shared_ptr` and `weak_ptr`. If not, then you can use Boehm GC if you don&#x27;t do anything weird with pointers.<p>(2) If you mean &quot;tail recursion optimization&quot;, it&#x27;s a compiler thing, not a language thing in this case, and GCC and MSVC in fact support it, and I&#x27;m sure Clang does too. So since &quot;either one&quot; is sufficient, as you say, it looks like you can go implement Okasaki&#x27;s stuff in C++ now!