public static Func>>> Bind( Func> m, Func>>>> k) { return s0 => { var mResult = m(s0); var kResult = k(mResult.Item2); return kResult(mResult.Item1); }; }