Module Monad.StateR

Parameters

module S : sig ... end

Signature

type state = S.state
type error = S.error
type 'a t = state -> state * ('a, error) Stdlib.result
val return : 'a -> 'b -> 'b * ('a, 'c) Stdlib.result
val (>>=) : ('a -> 'b * ('c, 'd) Stdlib.result) -> ('c -> 'b -> 'b * ('e, 'd) Stdlib.result) -> 'a -> 'b * ('e, 'd) Stdlib.result
val (>>|) : ('a -> 'b * ('c, 'd) Stdlib.result) -> ('c -> 'e) -> 'a -> 'b * ('e, 'd) Stdlib.result
val (let*) : ('a -> 'b * ('c, 'd) Stdlib.result) -> ('c -> 'b -> 'b * ('e, 'd) Stdlib.result) -> 'a -> 'b * ('e, 'd) Stdlib.result
val (let+) : ('a -> 'b * ('c, 'd) Stdlib.result) -> ('c -> 'e) -> 'a -> 'b * ('e, 'd) Stdlib.result
val get : 'a -> 'a * ('a, 'b) Stdlib.result
val put : 'a -> 'b -> 'a * (unit, 'c) Stdlib.result
val fail : 'a -> 'b -> 'b * ('c, 'a) Stdlib.result
val run : ('a -> 'b) -> 'a -> 'b