It is simpler to design `recursive_wrapper` as "wrapper" over ready-to-use to RAII `std::unique_ptr`. Just add value semantics ([example](https://github.com/tomilov/variant/blob/master/include/versatile/recursive_wrapper.hpp)).