public async override Task Handle <TValue>(EffAwaiter <TValue> awaiter) { var result = MaybeEffectHandler.Run(awaiter.Eff); if (result.HasValue) { awaiter.SetResult(result.Value); var next = _continuation.MoveNext(); Result = MaybeEffectHandler.Run(next); } }
public async override Task Handle <TValue>(EffectAwaiter <TValue> awaiter) { switch (awaiter.Effect) { case MaybeEffect <TValue> me: if (me.Result.HasValue) { awaiter.SetResult(me.Result.Value); var next = _continuation.MoveNext(); Result = MaybeEffectHandler.Run(next); } break; } }
static void Main() { MaybeEffectHandler.Run(Test()); }