elpi.parser
Ast.Term
elpi
elpi.compiler
elpi.lexer_config
elpi.runtime
elpi.trace
elpi.util
trace_ppx
trace_ppx_runtime
type typ = raw_attribute list TypeExpression.t
val pp_typ : Ppx_deriving_runtime.Format.formatter -> typ -> Ppx_deriving_runtime.unit
val show_typ : typ -> Ppx_deriving_runtime.string
val compare_typ : typ -> typ -> Ppx_deriving_runtime.int
type t_ =
| Const of Func.t
| App of t * t list
| Lam of Func.t * Loc.t * typ option * t
| CData of Elpi_util.Util.CData.t
| Quoted of quote
| Cast of t * typ
| Parens of t
and t = {
it : t_;
loc : Loc.t;
}
and quote = {
qloc : Loc.t;
data : string;
kind : string option;
val pp_t_ : Ppx_deriving_runtime.Format.formatter -> t_ -> Ppx_deriving_runtime.unit
val show_t_ : t_ -> Ppx_deriving_runtime.string
val pp : Ppx_deriving_runtime.Format.formatter -> t -> Ppx_deriving_runtime.unit
val show : t -> Ppx_deriving_runtime.string
val pp_quote : Ppx_deriving_runtime.Format.formatter -> quote -> Ppx_deriving_runtime.unit
val show_quote : quote -> Ppx_deriving_runtime.string
val compare_t_ : t_ -> t_ -> Ppx_deriving_runtime.int
val compare : t -> t -> Ppx_deriving_runtime.int
val compare_quote : quote -> quote -> Ppx_deriving_runtime.int
exception NotInProlog of Loc.t * string
val mkApp : Loc.t -> t list -> t
val mkParens : Loc.t -> t -> t
val mkAppF : Loc.t -> (Loc.t * Func.t) -> t list -> t
val mkCon : Loc.t -> string -> t
val mkConst : Loc.t -> Func.t -> t
val mkNil : Loc.t -> t
val mkSeq : ?loc:Loc.t -> t list -> t
val mkQuoted : Loc.t -> int -> string -> t
val mkFreshUVar : Loc.t -> t
val mkFreshName : Loc.t -> t
val mkLam : Loc.t -> string -> Loc.t -> typ option -> t -> t
val mkC : Loc.t -> Elpi_util.Util.CData.t -> t
val mkCast : Loc.t -> t -> typ -> t