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