@override Option<(T, U)> zip<U>(Option<U> other) => other.isSome ? Some((value, other.unwrap())) : None();