package lemonade

  1. Overview
  2. Docs

Parameters

Signature

type state = State.t
type +'a t
val bind : 'a t -> ('a -> 'b t) -> 'b t
val return : 'a -> 'a t
val apply : ('a -> 'b) t -> 'a t -> 'b t
val join : 'a t t -> 'a t
val map : ('a -> 'b) -> 'a t -> 'b t
val bind2 : 'a t -> 'b t -> ('a -> 'b -> 'c t) -> 'c t
val bind3 : 'a t -> 'b t -> 'c t -> ('a -> 'b -> 'c -> 'd t) -> 'd t
val bind4 : 'a t -> 'b t -> 'c t -> 'd t -> ('a -> 'b -> 'c -> 'd -> 'e t) -> 'e t
val map2 : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t
val map3 : ('a -> 'b -> 'c -> 'd) -> 'a t -> 'b t -> 'c t -> 'd t
val map4 : ('a -> 'b -> 'c -> 'd -> 'e) -> 'a t -> 'b t -> 'c t -> 'd t -> 'e t
val dist : 'a t list -> 'a list t
val ignore : 'a t -> unit t
val filter : ('a -> bool t) -> 'a t list -> 'a list t
val only_if : bool -> unit t -> unit t
val unless : bool -> unit t -> unit t
val catch : (unit -> 'a t) -> (exn -> 'a t) -> 'a t
module Infix : sig ... end
val state : (state -> state * 'a) -> 'a t
val read : state t
val write : state -> unit t
val modify : (state -> state) -> unit t
val run : 'a t -> state -> (state * 'a) M.t
val eval : 'a t -> state -> 'a M.t
val exec : 'a t -> state -> state M.t
val maps : ((state * 'a) -> state * 'b) -> 'a t -> 'b t
val with_state : (state -> state) -> 'a t -> 'a t
val lift : 'a M.t -> 'a t