On Thursday, 11 July 2013 at 03:06:39 UTC, Meta wrote:
struct Option(T) { Algebraic!(Some!T, None) payload;alias payload this; }
This is untested but it probably looks something like this: private alias MaybeType = Algebraic!(Some!T, None); Option!int ans; ans.payload = MaybeType(None);