package elpi
Library
Module
Module type
Parameter
Class
Class type
This module exposes the low level representation of terms. * * The data type term
is opaque and can only be accessed by using the * look
API that exposes a term view
. The look
view automatically * substitutes assigned unification variables by their value. The UVar
* and AppUVar
node hence stand for unassigned unification variables.
De Bruijn levels (not indexes): the distance of the binder from the root. Starts at 0 and grows for bound variables; global constants have negative values.
De Bruijn levels (not indexes): the distance of the binder from the root. Starts at 0 and grows for bound variables; global constants have negative values.
val mkGlobalS : string -> term
Smart constructors
val mkNil : term
val mkDiscard : term
Terms must be inspected after dereferencing their head. If the resulting term is UVar then its uvar_body is such that get_assignment uvar_body = None
val fresh_uvar_body : unit -> uvar_body
type custom_state = Data.custom_state
type constraints = Data.constraints
module StrMap = Data.StrMap
val of_solution : Data.solution -> solution
type hyps = clause_src list
val constraints : Data.constraints -> suspended_goal list
module C : sig ... end
LambdaProlog built-in data types
module Constants : sig ... end
LambdaProlog built-in global constants