lisa.monad.TransformerStack#

lisa.monad.TransformerStack(*stack)[source]#

Allows stacking together multiple MonadTrans, e.g.:

class Stack(TransformerStack(T1, T2, T3)):
    pass

@Stack.do
async def foo():

    # Any monadic value from the stack's direct components can be used.
    await T1.pure(42)
    await T2.pure(42)
    await T3.pure(42)