pub fn map_either<A, B, C, D>( either: Either<A, B>, f: impl FnOnce(A) -> C, g: impl FnOnce(B) -> D, ) -> Either<C, D>