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