Trait for polymorphic recursion into Eff[?, A]
Trait for polymorphic recursion into Eff[?, A]
The idea is to deal with one effect at the time:
Operations of Eff[R, A] values
Monad implementation for the Eff[R, ?] type
An Eff[R, A] value can be transformed into an Eff[U, A] value provided that all the effects in R are also in U
create a impure value from an union of effects and a continuation
create a pure value
base runner for an Eff value having no effects at all
base runner for an Eff value having no effects at all
This runner can only return the value in Pure because it doesn't known how to interpret the effects in Impure
create an Eff[R, A] value from an effectful value of type T[V] provided that T is one of the effects of R
create an Eff value for ()