sig
  type 'b reader = READER
  type (_, _) Generic_util.App.T.app +=
      Reader :
        ('-> 'a) -> ('a, 'Generic_util_monad.Reader.reader)
                      Generic_util.App.T.app
  val run_reader :
    ('a, 'Generic_util_monad.Reader.reader) Generic_util.App.T.app ->
    '-> 'a
  val reader : 'Generic_util_monad.Reader.reader Generic_util_monad.monad
  val ask : ('a, 'Generic_util_monad.Reader.reader) Generic_util.App.T.app
  val local :
    ('-> 'b) ->
    ('c, 'Generic_util_monad.Reader.reader) Generic_util.App.T.app ->
    ('c, 'Generic_util_monad.Reader.reader) Generic_util.App.T.app
end