On Saturday, 26 July 2014 at 00:26:08 UTC, Ary Borenszweig wrote:
Or use Algebraic, but it currently doesn't support recursive type definitions.
Algebraic does support recursive type definitions. import std.variant; alias Rec = Algebraic!(int, This*); void main() { //I'm not sure why this works auto i = Rec(Rec(Rec(1))); i = Rec(new Rec(new Rec(1))); }