pub trait Map<T>: TupleElements {
type Output: TupleElements<Element = T>;
fn map<F>(self, f: F) -> Self::Output
where
F: Fn(Self::Element) -> T;
fn map_mut<F>(self, f: F) -> Self::Output
where
F: FnMut(Self::Element) -> T;
}