A sum type for modern D. This module provides SumType, an alternative to std.variant.Algebraic with improved pattern-matching, full attribute correctness (pure, @safe, @nogc, and nothrow are inferred whenever possible), and no dependency on runtime type information (TypeInfo).