Effect<E, L, R>.gen constructor
Effect<E, L, R>.gen (
- DoFunctionEffect<
E, L, R> f
{@category constructors}
Implementation
factory Effect.gen(DoFunctionEffect<E, L, R> f) => Effect<E, L, R>._(
(env) {
try {
return f(_effectGen<E, L>(env)).then(
Right.new,
onError: (error, stackTrace) {
if (error is _EffectThrow<L>) {
return Left<Cause<L>, R>(error.cause);
}
return Left<Cause<L>, R>(Die(error, stackTrace));
},
);
} on _EffectThrow<L> catch (genError) {
return Left(genError.cause);
}
},
);