Module Make.Let

Monadic operators, see Monad.Syntax.S for more.

val let* : 'a M.t -> ('a -> 'b M.t) -> 'b M.t

let* r = f x in b is f x >>= fun r -> b

val and* : 'a M.t -> 'b M.t -> ('a * 'b) M.t

monoidal product

val let+ : 'a M.t -> ('a -> 'b) -> 'b M.t

let+ r = f x in b is f x >>| fun r -> b

val and+ : 'a M.t -> 'b M.t -> ('a * 'b) M.t

monoidal product