Module Monads.STATEERROR

type ('st, 'a) t = 'st -> 'st * ('a, Common.error) Stdlib.Result.t
val return : 'a -> ('st, 'a) t
val fail : Common.error -> ('st, 'a) t
val (>>=) : ('st, 'a) t -> ('a -> ('st, 'b) t) -> ('st, 'b) t
val (let*) : ('st, 'a) t -> ('a -> ('st, 'b) t) -> ('st, 'b) t
val (*>) : ('st, 'a) t -> ('st, 'b) t -> ('st, 'b) t
val (<|>) : ('st, 'a) t -> ('st, 'a) t -> ('st, 'a) t
val (>>|) : ('st, 'a) t -> ('a -> 'b) -> ('st, 'b) t
val lift2 : ('a -> 'b -> 'c) -> ('st, 'a) t -> ('st, 'b) t -> ('st, 'c) t
val lift3 : ('a -> 'b -> 'c -> 'd) -> ('st, 'a) t -> ('st, 'b) t -> ('st, 'c) t -> ('st, 'd) t
val read : ('st, 'st) t
val write : 'st -> ('st, unit) t
val map : ('a -> ('st, 'b) t) -> 'a list -> ('st, 'b list) t
val iter : ('a -> ('st, unit) t) -> 'a list -> ('st, unit) t
val run : ('st, 'a) t -> 'st -> 'st * ('a, Common.error) Stdlib.Result.t