Module Elpi_compiler.Compiler

type flags = {
  1. defined_variables : Elpi_util.Util.StrSet.t;
  2. print_units : bool;
  3. time_typechecking : bool;
  4. skip_det_checking : bool;
}
val default_flags : flags
type header
type program
val program_of_ast : flags:flags -> header:header -> Elpi_parser.Ast.Program.t -> program
type scoped_program
val scoped_of_ast : flags:flags -> header:header -> Elpi_parser.Ast.Program.t -> scoped_program
type checked_compilation_unit
type unchecked_compilation_unit
val empty_base : header:header -> program
val unit_of_scoped : flags:flags -> header:header -> ?builtins:builtins list -> scoped_program -> unchecked_compilation_unit
val append_unit : flags:flags -> base:program -> checked_compilation_unit -> program
type checked_compilation_unit_signature
val signature_of_checked_compilation_unit : checked_compilation_unit -> checked_compilation_unit_signature
val append_unit_signature : flags:flags -> base:program -> checked_compilation_unit_signature -> program
type query
val total_type_checking_time : query -> float
val total_det_checking_time : query -> float
val optimize_query : query -> Elpi_runtime.Data.executable
val pp_program : (pp_ctx:Elpi_runtime.Data.pp_ctx -> depth:int -> Format.formatter -> Elpi_runtime.Data.term -> unit) -> Format.formatter -> program -> unit
val pp_goal : (pp_ctx:Elpi_runtime.Data.pp_ctx -> depth:int -> Format.formatter -> Elpi_runtime.Data.term -> unit) -> Format.formatter -> query -> unit
val elpi_language : Compiler_data.Scope.language
val pp_uvar_body : Format.formatter -> Elpi_runtime.Data.uvar -> unit
val pp_uvar_body_raw : Format.formatter -> Elpi_runtime.Data.uvar -> unit
val global_name_to_constant : Elpi_runtime.Data.State.t -> string -> Elpi_util.Util.constant
module IntervalTree : sig ... end
type type_
val pp_type_ : Format.formatter -> type_ -> unit
type info = {
  1. defined : Elpi_parser.Ast.Loc.t option;
  2. type_ : type_ option;
}
val pp_info : Format.formatter -> info -> unit