module State : sig ... endtype ('a, 'err, 'prio, 'state) t = (('a, 'err) result, 'prio, 'state) State.tval return : 'a -> ('a, 'err, 'prio, 'state) tval bind :
('a, 'err, 'prio, 'state) t ->
('a -> ('b, 'err, 'prio, 'state) t) ->
('b, 'err, 'prio, 'state) tval (let*) :
('a, 'err, 'prio, 'state) t ->
('a -> ('b, 'err, 'prio, 'state) t) ->
('b, 'err, 'prio, 'state) tval map :
('a -> 'b) ->
('a, 'err, 'prio, 'state) t ->
('b, 'err, 'prio, 'state) tval (let+) :
('a, 'err, 'prio, 'state) t ->
('a -> 'b) ->
('b, 'err, 'prio, 'state) tval modify_state : ('state -> 'state) -> (unit, 'err, 'prio, 'state) tval set_state : 'state -> (unit, 'err, 'prio, 'state) tval state : unit -> ('state, 'err, 'prio, 'state) tval choose :
('a, 'err, 'prio, 'state) t ->
('a, 'err, 'prio, 'state) t ->
('a, 'err, 'prio, 'state) tval fail : 'err -> ('a, 'err, 'prio, 'state) tval fork :
parent:('a, 'err, 'prio, 'state) t ->
child:('prio * ('a, 'err, 'prio, 'state) t) ->
('a, 'err, 'prio, 'state) tval prune : unit -> ('a, 'err, 'prio, 'state) tval yield : 'prio -> (unit, 'err, 'prio, 'state) tval run :
('a, 'err, 'prio, 'state) t ->
'state ->
(('a, 'err) result * 'state, 'prio) Schedulable.t