pub trait Or<T> { type Sum; // Required method fn or(self, other: T) -> Self::Sum; }
An abstract sum of types
This is the core operation to build a Union