lisa.monad.Monad#

class lisa.monad.Monad[source]#

Bases: object

Methods

__await__()

bind()

Takes a monadic value Monad[A], a function that takes an A and returns Monad[B], and returns a Monad[B].

join()

Takes a monadic value Monad[Monad[A]], and returns a Monad[A].

map()

Takes a monadic value Monad[A], a function that takes an A and returns B, and returns a Monad[B].

pure()

Takes a value of type T and turns it into a “monadic value” of type Monad[T].

Methods#

Monad.__await__()#
abstract Monad.bind(continuation)#

Takes a monadic value Monad[A], a function that takes an A and returns Monad[B], and returns a Monad[B].

Note

It is allowed to return a _TailCall instance.

Monad.join(self)[source]#

Takes a monadic value Monad[Monad[A]], and returns a Monad[A].

Monad.map(self, f)[source]#

Takes a monadic value Monad[A], a function that takes an A and returns B, and returns a Monad[B].

abstract classmethod Monad.pure(x)#

Inherited method, see lisa.monad.Monad.pure()

Takes a value of type T and turns it into a “monadic value” of type Monad[T].