Base trait for custom instances of LazyMemoizer effect.
case object MyLazyMemoizer extends LazyMemoizerEffect[Int, String]
// optional:
type MyLazyMemoizer = MyLazyMemoizer.type
Memoizes a recursive, effectful, lazy function. Like the MemoizerEffect, but this version can be used to build or transform cyclic data structures.
The price to pay is that that memo returns a thunk. The constructor of the cyclic data structure should store obtained thunks, rather than attempt to call them.
Calling obtained thunks BEFORE this effect is handled, may raise TieTheKnot exception and should be considered a defect.
Embeds an invocation of this Signature's method into the Computation monad. This provides mechanism for separation between syntax an semantics of effects.