On Fri, Apr 21, 2017 at 04:16:30PM +0000, David Sanders via Digitalmars-d-learn wrote: > I'm trying to do algebra with types ala > http://chris-taylor.github.io/blog/2013/02/10/the-algebra-of-algebraic-data-types/ > > Below you will find my attempts at "adding" types in D. I've outlined the > parts I'm having trouble with using block comments. > > 1) How do I figure out whether a type is an instantiation of > std.variant.Algebraic? > 2) If the type is Algebraic, how do I capture its AllowedTypes? [...]
static if (is(T : Algebraic!(U...), U)) { // U now refers to the argument to Algbraic. } --T