Example #1
0
 public static Lift <RT, C> SelectMany <RT, A, B, C>(this Lift <RT, A> ma, Func <A, Eff <B> > f, Func <A, B, C> project) where RT : struct, HasCancel <RT> =>
 ma.Bind(x => new Lift <RT, B> .Do <B>(f(x), Pure <RT, B>).Map(y => project(x, y)));
Example #2
0
 public static Lift <RT, B> SelectMany <RT, A, B>(this Lift <RT, A> ma, Func <A, Lift <RT, B> > f) where RT : struct, HasCancel <RT> =>
 ma.Bind(f);
Example #3
0
 public static Lift <RT, B> SelectMany <RT, A, B>(this Lift <RT, A> ma, Func <A, Eff <B> > f) where RT : struct, HasCancel <RT> =>
 ma.Bind(x => new Lift <RT, B> .Do <B>(f(x), Pure <RT, B>));