pub trait IntoCast: IsNone<Inner = Self> + Clone + Sized { // Provided method fn into_cast<T: IsNone>(self) -> T::Cast<Self> where T::Inner: Cast<Self::Inner> { ... } }