.. title:: MonadTrans lisa.monad.MonadTrans ===================== .. autoclass:: lisa.monad::MonadTrans :no-members: :no-inherited-members: :no-undoc-members: :no-private-members: :no-special-members: .. rubric:: Methods .. list-table:: :align: left * - :meth:`~lisa.monad.MonadTrans.bind` - .. withrefctx:: :module: lisa.monad :class: lisa.monad.MonadTrans Takes a monadic value Monad[A], a function that takes an A and returns Monad[B], and returns a Monad[B]. * - :meth:`~lisa.monad.MonadTrans.do` - .. withrefctx:: :module: lisa.monad :class: lisa.monad.MonadTrans Decorate a coroutine function so that ``awaits`` gains the powers of the monad. * - :meth:`~lisa.monad.MonadTrans.hoist` - .. withrefctx:: :module: lisa.monad :class: lisa.monad.MonadTrans Lift a monadic value ``m`` by one level in the stack, i.e.: Given a stack for 3 transformers ``T1(T2(T3(Identity)))``, a value ``m = T2(Identity).pure(42)``. we have ``T2.hoist(m, T3.pure) == T2(T3(Identity)).pure(42)``. * - :meth:`~lisa.monad.MonadTrans.lift` - .. withrefctx:: :module: lisa.monad :class: lisa.monad.MonadTrans Lift a monadic value ``m`` by one level in the stack, i.e.: Given a stack for 3 transformers ``T1(T2(T3(Identity)))``, a value ``m = T3(Identity).pure(42)``. we have ``T2.lift(m) == T2(T3(Identity)).pure(42)``. * - :meth:`~lisa.monad.MonadTrans.pure` - .. withrefctx:: :module: lisa.monad :class: lisa.monad.MonadTrans Turn a regular value of type ``A`` into a monadic value of type ``Monad[A]``. * - :meth:`~lisa.monad.Monad.__await__` :sup:`inherited` - .. withrefctx:: :module: lisa.monad :class: lisa.monad._MonadBase * - :meth:`~lisa.monad.Monad.join` :sup:`inherited` - .. withrefctx:: :module: lisa.monad :class: lisa.monad.Monad Takes a monadic value Monad[Monad[A]], and returns a Monad[A]. * - :meth:`~lisa.monad.Monad.map` :sup:`inherited` - .. withrefctx:: :module: lisa.monad :class: lisa.monad.Monad Takes a monadic value Monad[A], a function that takes an A and returns B, and returns a Monad[B]. Methods ------- .. automethod:: lisa.monad::MonadTrans.bind .. automethod:: lisa.monad::MonadTrans.do .. automethod:: lisa.monad::MonadTrans.hoist .. automethod:: lisa.monad::MonadTrans.lift .. automethod:: lisa.monad::MonadTrans.pure .. automethod:: lisa.monad::MonadTrans.__await__ .. automethod:: lisa.monad::MonadTrans.join .. automethod:: lisa.monad::MonadTrans.map