Module Monads.QuM

The quotation environment keeps track of De Bruijn indices for quotation.

include Basis.Monad.MonadReaderResult with type 'a m = 'a quote
include Basis.Monad.S with type 'a m = 'a quote
type 'a m = 'a quote
val ret : 'a -> 'a m
val bind : 'a m -> ('a -> 'b m) -> 'b m
type local
val read : local m
val scope : (local -> local) -> 'a m -> 'a m
val run : local -> 'a m -> ('a, exn) Stdlib.result
val run_exn : local -> 'a m -> 'a
val throw : exn -> 'a m
val trap : 'a m -> ('a, exn) Stdlib.result m
val lift_cmp : 'a compute -> 'a m
val should_normalize : bool m
val with_normalization : bool -> 'a m -> 'a m
val read_global : RefineState.t m
val read_local : int m
val globally : 'a m -> 'a m
val binder : int -> 'a m -> 'a m
val bind_var : D.tp -> (D.con -> 'a m) -> 'a m
val abort_if_inconsistent : 'a m -> 'a m -> 'a m