public bool Applicative_Law_Ok_Holds(byte x, short y, Func <byte, short, int> f) { return(f.Curry() .AsResult <Func <byte, Func <short, int> >, string>() .Apply(x.AsResult <byte, string>()) .Apply(y.AsResult <short, string>()) .UnsafeGetOk() .Equals(f(x, y))); }