public static Option <R> Map <T, R>(this Option <T> self, Func <T, R> Some, Func <R> None) => self.IsSome ? OptionCast.Cast(Some(self.Value)) : None();
public static Option <R> Map <T, R>(this Option <T> self, Func <T, R> mapper) => self.IsSome ? OptionCast.Cast(mapper(self.Value)) : None;