Module Monads.CmpM

The "computation" monad; contains enough state to run computations in the semantic domain, does not contain a variable environment or anything that would be needed for evaluation.

include Basis.Monad.MonadReaderResult with type 'a m = 'a compute
include Basis.Monad.S with type 'a m = 'a compute
type 'a m = 'a compute
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 read_global : RefineState.t m
val lift_ev : D.env -> 'a evaluate -> 'a m
val test_sequent : D.cof list -> D.cof -> bool m
val simplify_cof : D.cof -> D.cof m
val forall_cof : (D.dim * D.cof) -> D.cof m
val restore_cof_thy : CodeUnit.CofThy.Disj.t -> 'a m -> 'a m
val abort_if_inconsistent : 'a m -> 'a m -> 'a m