/// Trait for properly deallocating Unions that are not Copy.
///
/// Unlike the other Indexed* traits, this one is exported because there is no
/// way to avoid mentioning it. For example to require IndexedClone it suffices
/// to require that `Coproduct<T>` is [Clone].
/// This trait is implemented for Unions where variant I has type X.