package base
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=109456ad2350671ad3159cbbca993e3e
sha512=445d08b965e0d559e4046b874f611c8f36de47fa5c23a047146f48ee638588c1b73789a7adb5ead235c0ad2f44b56fd513a6d60bcb8b6c9f11566d32fd7760f2
doc/base/Base/Monad/index.html
Module Base.MonadSource
A monad is an abstraction of the concept of sequencing of computations. A value of type 'a monad represents a computation that returns a value of type 'a.
Multi parameter monad. The second parameter gets unified across all the computation. This is used to encode monads working on a multi parameter data structure like (('a,'b) result).
Multi parameter monad. The second and third parameters get unified across all the computation.
Indexed monad, in the style of Atkey. The second and third parameters are composed across all computation. To see this more clearly, you can look at the type of bind:
Multi parameter monad. The second parameter gets unified across all the computation. This is used to encode monads working on a multi parameter data structure like (('a,'b) result).
Same as Infix, except the monad type has two arguments. The second is always just passed through.
Same as Infix, except the monad type has three arguments. The second and third are always just passed through.
Same as Infix, except the monad type has three arguments. The second and third are composed across all computation.
Same as Infix, except the monad type has two arguments. The second is always just passed through.
Opening a module of this type allows one to use the %bind and %map syntax extensions defined by ppx_let, and brings return into scope.
Opening a module of this type allows one to use the %bind and %map syntax extensions defined by ppx_let, and brings return into scope.
The same as S except the monad type has two arguments. The second is always just passed through.
The same as S except the monad type has three arguments. The second and third are always just passed through.
The same as S except the monad type has three arguments. The second and third are composed across all computation.
The same as S except the monad type has two arguments. The second is always just passed through.
The same as S except the monad type has two arguments. The second is always just passed through.
The same as S except the monad type has three arguments. The second and third are always just passed through.
module Make_indexed
(X : Basic_indexed) :
S_indexed with type ('a, 'd, 'e) t := ('a, 'd, 'e) X.tThe same as S except the monad type has three arguments. The second and third are composed across all computation.
The same as S except the monad type has two arguments. The second is always just passed through.
Define a monad through an isomorphism with an existing monad. For example:
The same as S except the monad type has two arguments. The second is always just passed through.
module Of_monad3
(Monad : S3)
(M : sig ... end) :
S3 with type ('a, 'b, 'c) t := ('a, 'b, 'c) M.tThe same as S except the monad type has three arguments. The second and third are always just passed through.