package elpi

  1. Overview
  2. Docs
val error : ?loc:Ast.Loc.t -> string -> 'a

A regular error (fatal)

An invariant is broken, i.e. a bug

val anomaly : ?loc:Ast.Loc.t -> string -> 'a

An invariant is broken, i.e. a bug

A type error (in principle ruled out by elpi-checker.elpi)

val type_error : ?loc:Ast.Loc.t -> string -> 'a

A type error (in principle ruled out by elpi-checker.elpi)

A non fatal warning

val warn : ?loc:Ast.Loc.t -> string -> unit

A non fatal warning

val list_to_lp_list : Data.term list -> Data.term

link between OCaml and LP lists. Note that 1,2|X is not a valid * OCaml list!

val lp_list_to_list : depth:int -> Data.term -> Data.term list
val unsafe_look : Data.term -> Data.view
val get_assignment : Data.uvar_body -> Data.term option

The body of an assignment, if any (LOW LEVEL). * Use look and forget about this API since the term you get * needs to be moved and/or reduced, and you have no API for this.

val clause_of_term : ?name:string -> ?graft:([ `After | `Before ] * string) -> depth:int -> Ast.Loc.t -> Data.term -> Ast.program

Hackish, in particular the output should be a compiled program

val move : from:int -> to_:int -> Data.term -> Data.term

Lifting/restriction (LOW LEVEL, don't use)

OCaml

Innovation. Community. Security.