F# now has Discriminated Unions: http://msdn.microsoft.com/en-US/library/dd233226.aspx Would it be possible to have something similar in D?