elpi

ELPI - Embeddable λProlog Interpreter
Library elpi
Module Elpi . Builtin
val core_builtins : API.BuiltIn.declaration list
val io_builtins : API.BuiltIn.declaration list
val lp_builtins : API.BuiltIn.declaration list
val elpi_builtins : API.BuiltIn.declaration list
val elpi_nonlogical_builtins : API.BuiltIn.declaration list
val elpi_stdlib : API.BuiltIn.declaration list
val elpi_map : API.BuiltIn.declaration list
val elpi_set : API.BuiltIn.declaration list
val ocaml_runtime : API.BuiltIn.declaration list
val ocaml_map : name:string -> 'a API.Conversion.t -> (module API.Utils.Map.S with type key = 'a) -> API.BuiltIn.declaration list

Easy export of OCaml's Map/Set modules, use as follows: module StrMap = API.Utils.Map.Make(String) ocaml_map ~name:"strmap" BuiltInData.string (module StrMap)

val ocaml_set : name:string -> 'a API.Conversion.t -> (module API.Utils.Set.S with type elt = 'a) -> API.BuiltIn.declaration list
val std_declarations : API.BuiltIn.declaration list
val std_builtins : API.Setup.builtins
val pair : 'a API.Conversion.t -> 'b API.Conversion.t -> ('a * 'b) API.Conversion.t
val option : 'a API.Conversion.t -> 'a option API.Conversion.t
val bool : bool API.Conversion.t
type diagnostic = private
| OK
| ERROR of string API.BuiltInPredicate.ioarg
val diagnostic : diagnostic API.Conversion.t
val mkOK : diagnostic
val mkERROR : string -> diagnostic
type 'a unspec =
| Given of 'a
| Unspec
val unspecC : ( 'a, 'b, 'c ) API.ContextualConversion.t -> ( 'a unspec, 'b, 'c ) API.ContextualConversion.t
val in_stream : (in_channel * string) API.Conversion.t
val out_stream : (out_channel * string) API.Conversion.t
val default_checker : unit -> API.Compile.program