package monadlib

  1. Overview
  2. Docs

LazyPlus library.

Parameters

module M : BaseLazyPlus

Signature

include MonadPlus with type 'a m = 'a M.m
include Monad with type 'a m = 'a M.m
include BatInterfaces.Monad with type 'a m = 'a M.m
type 'a m = 'a M.m

The type of a monad producing values of type 'a.

val bind : 'a m -> ('a -> 'b m) -> 'b m

Monadic binding.

bind m f executes first m then f, using the result of m.

include Applicative.Applicative with type 'a m := 'a m
include Applicative.Base with type 'a m := 'a m
val return : 'a -> 'a m
val ap : ('a -> 'b) m -> 'a m -> 'b m
val lift1 : ('a -> 'b) -> 'a m -> 'b m
val lift2 : ('a -> 'b -> 'c) -> 'a m -> 'b m -> 'c m
val lift3 : ('a -> 'b -> 'c -> 'd) -> 'a m -> 'b m -> 'c m -> 'd m
val sequence : 'a m list -> 'a list m
val (>>=) : 'a m -> ('a -> 'b m) -> 'b m
val join : 'a m m -> 'a m
val zero : unit -> 'a m
val plus : 'a m -> 'a m -> 'a m
val null : 'a m -> bool
val filter : ('a -> bool) -> 'a m -> 'a m
val of_list : 'a list -> 'a m
val mconcat : 'a m list -> 'a m
val lplus : 'a m -> 'a m Lazy.t -> 'a m
val of_llist : 'a LazyList.t -> 'a m
val sum : 'a LazyList.t m -> 'a m

Sum the elements inside the monad.

val msum : 'a m LazyList.t -> 'a m
val lsequence : 'a m LazyList.t -> 'a LazyList.t m
val transpose : 'a LazyList.t m -> 'a m LazyList.t

Sum the list of first elements, the list of second elements, and so on. This is matrix transpose for the list monad.

OCaml

Innovation. Community. Security.