OneOf.NET45 (nuget): F# style discriminated unions or C#, using a custom type OneOf<T0, ... Tn> which holds a single value and has a .Match(...) method on it for exhaustive matching. Simple but powerful.
Keywords: discriminated|unions|return|type|match|switch