public static Opt <V> Ap <T, U, V>(Func <T, U, V> f, Opt <T> v1, Opt <U> v2) { if (v1.IsNone) { return(Opt <V> .None()); } if (v2.IsNone) { return(Opt <V> .None()); } return(Opt <V> .Some(f(v1.Val, v2.Val))); }
public static Opt <T> Some <T>(T val) { return(Opt <T> .Some(val)); }