On Monday, 6 October 2014 at 16:48:32 UTC, Jonathan wrote:
Resurrecting this topic, does D have ADTs yet for enums/structs?
Here's a proof of concept: http://www.infognition.com/blog/2014/recursive_algebraic_types_in_d.html struct Const(T) { ... } class Add(T) { ... } alias Exp = Either!(Add, Const); int eval(Exp!int e) { return e.match(a => a.l + a.r, i => i.x); } string show(Exp!string e) { return e.match(a => "(" ~ a.l ~ " + " ~ a.r ~ ")", i => i.x.text); }