Module InterpreterM


module InterpreterM: sig .. end

type 'a t 
Abstract type for interpreter-monad.

BASIC MONADIC FUNCTIONS
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
bind-function
val (>>) : 'a t -> 'b t -> 'b t
then-function
val return : 'a -> 'a t
return-function
val run : 'a t -> 'a
run-function

EXCEPTION-HANDLING
val raise : string -> 'a t
Raise a monad-exception
val (>?>) : 'a t -> (string -> 'a t) -> 'a t
Try-with-function to process monad-exceptions

IO-FUNCTIONS
val write : string -> unit t
val write_line : string -> unit t
val read_line : string t
val file_exists : string -> bool t
val read_file : string -> string Lst.t t
val write_file : string -> char Lst.t -> bool t
val set_verbose : bool -> unit t
val get_verbose : bool t
val set_strategy : Strng.t -> (CoreML.t -> (CoreML.pos * CoreML.t) list) -> unit t
val get_strategy_name : Strng.t t
val get_strategy_function : (CoreML.t -> (CoreML.pos * CoreML.t) list) t
val set_trace_steps : bool -> unit t
val get_trace_steps : bool t
val set_simple_output : bool -> unit t
val get_simple_output : bool t
val get_coreml_converter : (CoreML.t -> Strng.t) t
val get_coreml_mark_converter : (CoreML.pos list -> CoreML.t -> Strng.t) t
val set_typing : bool -> unit t
val get_typing : bool t
val set_record : bool -> unit t
val get_record : bool t
val set_template : Session.template -> unit t
val get_template : Session.template t
val has_type : CoreML.t -> bool t
val get_type : CoreML.t -> Type.t t
val get_types : (CoreML.t * Type.t) St.t t
val add_type : CoreML.t -> Type.t -> unit t
val del_type : CoreML.t -> unit t
val has_var : Strng.t -> bool t
val get_var : Strng.t -> CoreML.t t
val get_vars : (Strng.t * CoreML.t) St.t t
val add_var : Strng.t -> CoreML.t -> unit t
val del_var : Strng.t -> unit t
val get_session : Session.t t
val reset_session : unit t
val session_add : CoreML.t -> CoreML.t -> unit t
val session_add_trace : CoreML.t ->
(CoreML.t * CoreML.pos list) list -> CoreML.t -> unit t
val session_addt : CoreML.t -> CoreML.t -> Type.t -> unit t
val session_addt_trace : CoreML.t ->
(CoreML.t * CoreML.pos list) list ->
CoreML.t -> Type.t -> unit t