Module Generic_util_monad.State

module State: sig .. end

type 'b state = 
| STATE
type ('_, '_) App.T.app += 
| State : ('b -> 'a * 'b) -> ('a, 'b state) App.T.app
val run_state : ('a, 'b state) App.T.app ->
'b -> 'a * 'b
val state : 'a state Generic_util_monad.monad
val get : ('a, 'a state) App.T.app
val put : 'a -> (unit, 'a state) App.T.app