Module Reader

module Reader: sig .. end

Reader monad


include Monad.S2
val run : ('r, 'a) t -> 'r -> 'a
val reader : ('r -> 'a) -> ('r, 'a) t
val ask : ('r, 'r) t
val local : ('r -> 'r) -> ('r, 'a) t -> ('r, 'a) t
val dimap : ('q -> 'r) -> ('a -> 'b) -> ('r, 'a) t -> ('q, 'b) t