Module Interface.SpecTec_ALSource

include module type of struct include Spectec.Common.Boot end
val boot_iters : Spectec.Caches.Il.iter list -> Runtime.Value.t
val boot_vars : Spectec.Caches.Il.var list -> Runtime.Value.t
val boot_typs : Spectec.Caches.Il.typ list -> Runtime.Value.t
val boot_bool_typ : Util.Source.region -> Runtime.Value.t
val boot_text_typ : Util.Source.region -> Runtime.Value.t
val boot_func_typ : Util.Source.region -> Runtime.Value.t
val boot_typfields : Spectec.Caches.Il.typfield list -> Runtime.Value.t
val boot_typcases : Spectec.Caches.Il.typcase list -> Runtime.Value.t
val boot_variant_deftyp : Util.Source.region -> Spectec.Caches.Il.typcase list -> Runtime.Value.t
val boot_value_opt : Spectec.Caches.Il.value option -> Runtime.Value.t
val boot_values : Spectec.Caches.Il.value list -> Runtime.Value.t
val boot_bool_value : Util.Source.region -> bool -> Runtime.Value.t
val boot_text_value : Util.Source.region -> string -> Runtime.Value.t
val boot_valuefields : Spectec.Caches.Il.valuefield list -> Runtime.Value.t
val boot_extern_value : Util.Source.region -> Yojson.Safe.t -> Runtime.Value.t
val boot_unop_bool : Lang.Xl.Bool.unop -> Runtime.Value.t
val boot_unop_num : Lang.Xl.Num.unop -> Runtime.Value.t
val boot_binop_bool : Lang.Xl.Bool.binop -> Runtime.Value.t
val boot_binop_num : Lang.Xl.Num.binop -> Runtime.Value.t
val boot_cmpop_bool : Lang.Xl.Bool.cmpop -> Runtime.Value.t
val boot_cmpop_num : Lang.Xl.Num.cmpop -> Runtime.Value.t
val boot_targs : Spectec.Caches.Il.targ list -> Runtime.Value.t
val boot_tparams : Spectec.Caches.Il.tparam list -> Runtime.Value.t
val boot_args : Spectec.Caches.Il.arg list -> Runtime.Value.t
val boot_bool_exp : Util.Source.region -> bool -> Runtime.Value.t
val boot_exps : Spectec.Caches.Il.exp list -> Runtime.Value.t
val boot_exp_opt : Spectec.Caches.Il.exp option -> Runtime.Value.t
include module type of struct include Spectec.Common.Unboot end
val error : string -> 'a
val unboot_iters : Runtime.Value.t -> Spectec.Caches.Il.iter list
val unboot_varis : Runtime.Value.t -> Spectec.Caches.Il.var list
val unboot_typs : Runtime.Value.t -> Spectec.Caches.Il.typ list
val unboot_num_typ_nat : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.typ
val unboot_num_typ_int : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.typ
val unboot_tuple_typ : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.typ
val unboot_targs : Runtime.Value.t -> Spectec.Caches.Il.targ list
val unboot_tparams : Runtime.Value.t -> Spectec.Caches.Il.tparam list
val unboot_plain_deftyp : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.deftyp
val unboot_typfields : Runtime.Value.t -> Spectec.Caches.Il.typfield list
val unboot_struct_deftyp : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.deftyp
val unboot_typcases : Runtime.Value.t -> Spectec.Caches.Il.typcase list
val unboot_variant_deftyp : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.deftyp
val unboot_values : Runtime.Value.t -> Lang.Il.value list
val unboot_num_value_nat : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.value
val unboot_num_value_int : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.value
val unboot_valuefields : Runtime.Value.t -> Lang.Il.valuefield list
val unboot_struct_value : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.value
val unboot_variant_value : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.value
val unboot_tuple_value : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.value
val unboot_value_opt : Runtime.Value.t -> Lang.Il.value option
val unboot_extern_value : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.value
val unboot_minus_unop : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.unop
val unboot_equiv_binop : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.binop
val unboot_args : Runtime.Value.t -> Spectec.Caches.Il.arg list
val unboot_exps : Runtime.Value.t -> Spectec.Caches.Il.exp list
val unboot_exp_opt : Runtime.Value.t -> Spectec.Caches.Il.exp option
val unboot_num_exp_nat : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.exp
val unboot_num_exp_int : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.exp
val unboot_upcast_exp : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.exp
val unboot_downcast_exp : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.exp
val unboot_match_exp : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.exp
val unboot_tuple_exp : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.exp
val unboot_slice_exp : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.exp
val unboot_slice_path : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.path
val unboot_cons_pattern : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.pattern
val unboot_fixed_pattern : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.pattern
val unboot_some_pattern : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.pattern
val unboot_none_pattern : Util.Source.region -> Runtime.Value.t list -> Spectec.Caches.Il.pattern
val unboot_iterexps : Runtime.Value.t -> Spectec.Caches.Il.iterexp list
include module type of struct include Spectec.Ali.Boot end
val boot_param : Lang.Il.param -> Runtime.Value.t
val boot_params : Lang.Il.param list -> Runtime.Value.t
val boot_iterprem : Lang.Il.iterprem -> Runtime.Value.t
val boot_prem : Lang.Il.prem -> Runtime.Value.t
val boot_if_nothold_prem : Util.Source.region -> Lang.Il.id -> Lang.Il.notexp -> Runtime.Value.t
val boot_debug_prem : Util.Source.region -> Lang.Il.exp -> Runtime.Value.t
val boot_prems : Lang.Il.prem list -> Runtime.Value.t
val boot_rulmatch : Lang.Al.rulematch -> Runtime.Value.t
val boot_rulpath : Lang.Al.rulepath -> Runtime.Value.t
val boot_rulpaths : Lang.Al.rulepath list -> Runtime.Value.t
val boot_rulgroup : Lang.Al.rulegroup -> Runtime.Value.t
val boot_rulgroups : Lang.Al.rulegroup list -> Runtime.Value.t
val boot_elsgroup : Lang.Al.elsegroup -> Runtime.Value.t
val boot_elsgroup_opt : Lang.Al.elsegroup option -> Runtime.Value.t
val boot_clause : Lang.Il.clause -> Runtime.Value.t
val boot_clauses : Lang.Il.clause list -> Runtime.Value.t
val boot_elsclause : Lang.Il.elseclause -> Runtime.Value.t
val boot_elsclause_opt : Lang.Il.elseclause option -> Runtime.Value.t
val boot_tablerow : Lang.Al.tablerow -> Runtime.Value.t
val boot_tablerows : Lang.Al.tablerow list -> Runtime.Value.t
val boot_def : Lang.Al.def -> Runtime.Value.t option
val boot_extern_typ_def : Util.Source.region -> Lang.Il.id -> Runtime.Value.t
val boot_extern_func_def : Util.Source.region -> Lang.Il.id -> Lang.Il.tparam list -> Lang.Il.param list -> Lang.Il.typ -> Runtime.Value.t
val boot_builtin_func_def : Util.Source.region -> Lang.Il.id -> Lang.Il.tparam list -> Lang.Il.param list -> Lang.Il.typ -> Runtime.Value.t
val boot_table_func_def : Util.Source.region -> Lang.Il.id -> Lang.Il.param list -> Lang.Il.typ -> Lang.Al.tablerow list -> Runtime.Value.t
val boot_spec : Lang.Al.spec -> Runtime.Value.t
include module type of struct include Spectec.Ali.Unboot end
val unboot_param_mtchtbl : Lang.Il.param Runtime.Value.Get.mtchtbl ref
val unboot_prem_mtchtbl : Lang.Il.prem Runtime.Value.Get.mtchtbl ref
val unboot_def_mtchtbl : Lang.Al.def Runtime.Value.Get.mtchtbl ref
val unboot_iterprem : Runtime.Value.t -> Lang.Il.iterprem
val unboot_param : Runtime.Value.t -> Lang.Il.param
val unboot_exp_param : Util.Source.region -> Runtime.Value.t list -> Lang.Il.param
val unboot_def_param : Util.Source.region -> Runtime.Value.t list -> Lang.Il.param
val unboot_params : Runtime.Value.t -> Lang.Il.param list
val unboot_prem : Runtime.Value.t -> Lang.Il.prem
val unboot_prems : Runtime.Value.t -> Lang.Al.prem list
val unboot_rel_prem : Util.Source.region -> Runtime.Value.t list -> Lang.Il.prem
val unboot_if_prem : Util.Source.region -> Runtime.Value.t list -> Lang.Il.prem
val unboot_ifhold_prem : Util.Source.region -> Runtime.Value.t list -> Lang.Il.prem
val unboot_ifnothold_prem : Util.Source.region -> Runtime.Value.t list -> Lang.Il.prem
val unboot_let_prem : Util.Source.region -> Runtime.Value.t list -> Lang.Il.prem
val unboot_iter_prem : Util.Source.region -> Runtime.Value.t list -> Lang.Il.prem
val unboot_debug_prem : Util.Source.region -> Runtime.Value.t list -> Lang.Il.prem
val unboot_rulmatch : Runtime.Value.t -> Lang.Al.rulematch
val unboot_rulpath : Runtime.Value.t -> Lang.Al.rulepath
val unboot_rulpaths : Runtime.Value.t -> Lang.Al.rulepath list
val unboot_rulgroup : Runtime.Value.t -> Lang.Al.rulegroup
val unboot_rulgroups : Runtime.Value.t -> Lang.Al.rulegroup list
val unboot_elsgroup : Runtime.Value.t -> Lang.Al.elsegroup
val unboot_elsgroup_opt : Runtime.Value.t -> Lang.Al.elsegroup option
val unboot_clause : Runtime.Value.t -> Lang.Il.clause
val unboot_clauses : Runtime.Value.t -> Lang.Il.clause list
val unboot_elsclause : Runtime.Value.t -> Lang.Il.elseclause
val unboot_elsclause_opt : Runtime.Value.t -> Lang.Il.elseclause option
val unboot_tablerow : Runtime.Value.t -> Lang.Al.tablerow
val unboot_tablerows : Runtime.Value.t -> Lang.Al.tablerow list
val unboot_def : Runtime.Value.t -> Lang.Al.def
val unboot_extern_typ_def : Util.Source.region -> Runtime.Value.t list -> Lang.Al.def
val unboot_typ_def : Util.Source.region -> Runtime.Value.t list -> Lang.Al.def
val unboot_extern_rel_def : Util.Source.region -> Runtime.Value.t list -> Lang.Al.def
val unboot_rel_def : Util.Source.region -> Runtime.Value.t list -> Lang.Al.def
val unboot_extern_func_def : Util.Source.region -> Runtime.Value.t list -> Lang.Al.def
val unboot_builtin_func_def : Util.Source.region -> Runtime.Value.t list -> Lang.Al.def
val unboot_table_func_def : Util.Source.region -> Runtime.Value.t list -> Lang.Al.def
val unboot_func_def : Util.Source.region -> Runtime.Value.t list -> Lang.Al.def
val unboot_script : Runtime.Value.t -> Lang.Al.spec
include module type of struct include Spectec.Caches end
module Il = Spectec.Caches.Il
module VCache = Spectec.Caches.VCache
module MCache = Spectec.Caches.MCache
type cache = Spectec.Caches.cache = {
  1. mutable enabled : bool;
  2. boot_mixop : Il.value MCache.t;
  3. boot_value : Il.value VCache.t;
  4. boot_value_pingpong : Il.value VCache.t;
  5. unboot_mixop : Il.mixop VCache.t;
  6. unboot_typ : Il.typ VCache.t;
  7. unboot_value : Il.value VCache.t;
  8. unboot_value_pingpong : Il.value VCache.t;
}
val find_boot_mixop_cache : (Il.mixop -> Il.value option) ref
val add_boot_mixop_cache : (Il.mixop -> Il.value -> unit) ref
val find_boot_value_cache : (Il.value -> Il.value option) ref
val add_boot_value_cache : (Il.value -> Il.value -> unit) ref
val find_boot_value_pingpong_cache : (Il.value -> Il.value option) ref
val add_boot_value_pingpong_cache : (Il.value -> Il.value -> unit) ref
val find_unboot_mixop_cache : (Il.value -> Il.mixop option) ref
val add_unboot_mixop_cache : (Il.value -> Il.mixop -> unit) ref
val find_unboot_typ_cache : (Il.value -> Il.typ option) ref
val add_unboot_typ_cache : (Il.value -> Il.typ -> unit) ref
val find_unboot_value_cache : (Il.value -> Il.value option) ref
val add_unboot_value_cache : (Il.value -> Il.value -> unit) ref
val find_unboot_value_pingpong_cache : (Il.value -> Il.value option) ref
val add_unboot_value_pingpong_cache : (Il.value -> Il.value -> unit) ref
val make_cache : unit -> cache
val cache_enable : cache -> unit
val cache_disable_reset : cache -> unit
val cache_clear : cache -> unit
val stack : cache option list ref
val curr : cache option ref
val install_none : unit -> unit
val install_some : cache -> unit
val install : cache option -> unit
val push_cache : cache -> unit
val pop_cache : unit -> unit
Sourceval parse_program : string list -> string list -> Run.parse_result
Sourceval parse_string : string -> string -> Run.parse_result
Sourceval unparse_program : Value.t -> string
module Builtin_SpecTec : sig ... end
Sourceval call_builtin : (Lang.Il.value -> unit) -> Lang.Il.id -> Lang.Il.targ list -> Lang.Il.value list -> Lang.Il.value
Sourceval checkpoint : unit -> int
Sourceval seff : int -> int -> bool
Sourceval init : Run.spec -> unit