package elpi

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type ('match_stateful_t, 'match_t, 't) match_t =
  1. | M of ok:'match_t -> ko:(unit -> term) -> 't -> term
  2. | MS of ok:'match_stateful_t -> ko:(State.t -> State.t * term * Conversion.extra_goals) -> 't -> State.t -> State.t * term * Conversion.extra_goals
type ('build_stateful_t, 'build_t) build_t =
  1. | B of 'build_t
  2. | BS of 'build_stateful_t
type ('stateful_builder, 'builder, 'stateful_matcher, 'matcher, 'self, 'hyps, 'constraints) constructor_arguments =
  1. | N : (State.t -> State.t * 'self, 'self, State.t -> State.t * term * Conversion.extra_goals, term, 'self, 'hyps, 'constraints) constructor_arguments
  2. | A : 'a Conversion.t * ('bs, 'b, 'ms, 'm, 'self, 'hyps, 'constraints) constructor_arguments -> ('a -> 'bs, 'a -> 'b, 'a -> 'ms, 'a -> 'm, 'self, 'hyps, 'constraints) constructor_arguments
  3. | CA : ('a, 'hyps, 'constraints) ContextualConversion.t * ('bs, 'b, 'ms, 'm, 'self, 'hyps, 'constraints) constructor_arguments -> ('a -> 'bs, 'a -> 'b, 'a -> 'ms, 'a -> 'm, 'self, 'hyps, 'constraints) constructor_arguments
  4. | S : ('bs, 'b, 'ms, 'm, 'self, 'hyps, 'constraints) constructor_arguments -> ('self -> 'bs, 'self -> 'b, 'self -> 'ms, 'self -> 'm, 'self, 'hyps, 'constraints) constructor_arguments
  5. | C : (('self, 'hyps, 'constraints) ContextualConversion.t -> ('a, 'hyps, 'constraints) ContextualConversion.t) * ('bs, 'b, 'ms, 'm, 'self, 'hyps, 'constraints) constructor_arguments -> ('a -> 'bs, 'a -> 'b, 'a -> 'ms, 'a -> 'm, 'self, 'hyps, 'constraints) constructor_arguments
type ('t, 'h, 'c) constructor =
  1. | K : name * doc * ('build_stateful_t, 'build_t, 'match_stateful_t, 'match_t, 't, 'h, 'c) constructor_arguments * ('build_stateful_t, 'build_t) build_t * ('match_stateful_t, 'match_t, 't) match_t -> ('t, 'h, 'c) constructor
type ('t, 'h, 'c) declaration = {
  1. ty : Conversion.ty_ast;
  2. doc : doc;
  3. pp : Stdlib.Format.formatter -> 't -> unit;
  4. constructors : ('t, 'h, 'c) constructor list;
}
type ('b, 'm, 't, 'h, 'c) compiled_constructor_arguments =
  1. | XN : (State.t -> State.t * 't, State.t -> State.t * term * Conversion.extra_goals, 't, 'h, 'c) compiled_constructor_arguments
  2. | XA : ('a, 'h, 'c) ContextualConversion.t * ('b, 'm, 't, 'h, 'c) compiled_constructor_arguments -> ('a -> 'b, 'a -> 'm, 't, 'h, 'c) compiled_constructor_arguments
type ('match_t, 't) compiled_match_t = ok:'match_t -> ko:(State.t -> State.t * term * Conversion.extra_goals) -> 't -> State.t -> State.t * term * Conversion.extra_goals
type ('t, 'h, 'c) compiled_constructor =
  1. | XK : ('build_t, 'matched_t, 't, 'h, 'c) compiled_constructor_arguments * 'build_t * ('matched_t, 't) compiled_match_t -> ('t, 'h, 'c) compiled_constructor
type ('t, 'h, 'c) compiled_adt = ('t, 'h, 'c) compiled_constructor Elpi_util.Util.Constants.Map.t
val buildk : mkConst:(Elpi_util.Util.constant -> term) -> Elpi_util.Util.constant -> term list -> term
val readback_args : 'a 'm 't 'h 'c. look:(depth:int -> term -> term) -> Conversion.ty_ast -> depth:int -> 'h -> 'c -> State.t -> Conversion.extra_goals list -> term -> ('a, 'm, 't, 'h, 'c) compiled_constructor_arguments -> 'a -> term list -> State.t * 't * Conversion.extra_goals
val readback : 't 'h 'c. mkinterval:(int -> int -> int -> term list) -> look:(depth:int -> term -> term) -> alloc:(?name:string -> State.t -> State.t * 'uk) -> mkUnifVar:('uk -> args:term list -> State.t -> term) -> Conversion.ty_ast -> ('t, 'h, 'c) compiled_adt -> depth:int -> 'h -> 'c -> State.t -> term -> State.t * 't * Conversion.extra_goals
val adt_embed_args : 'm 'a 't 'h 'c. mkConst:(int -> term) -> Conversion.ty_ast -> ('t, 'h, 'c) compiled_adt -> Elpi_util.Util.constant -> depth:int -> 'h -> 'c -> ('a, 'm, 't, 'h, 'c) compiled_constructor_arguments -> (State.t -> State.t * term * Conversion.extra_goals) list -> 'm
val embed : 'a 'h 'c. mkConst:(int -> term) -> Conversion.ty_ast -> (Stdlib.Format.formatter -> 'a -> unit) -> ('a, 'h, 'c) compiled_adt -> depth:int -> 'h -> 'c -> State.t -> 'a -> State.t * term * Conversion.extra_goals
val compile_arguments : 'b 'bs 'm 'ms 't 'h 'c. ('bs, 'b, 'ms, 'm, 't, 'h, 'c) constructor_arguments -> ('t, 'h, 'c) ContextualConversion.t -> ('bs, 'ms, 't, 'h, 'c) compiled_constructor_arguments
val compile_builder_aux : 'bs 'b 'm 'ms 't 'h 'c. ('bs, 'b, 'ms, 'm, 't, 'h, 'c) constructor_arguments -> 'b -> 'bs
val compile_builder : 'bs 'b 'm 'ms 't 'h 'c. ('bs, 'b, 'ms, 'm, 't, 'h, 'c) constructor_arguments -> ('bs, 'b) build_t -> 'bs
val compile_matcher_ok : 'bs 'b 'm 'ms 't 'h 'c. ('bs, 'b, 'ms, 'm, 't, 'h, 'c) constructor_arguments -> 'ms -> Conversion.extra_goals Stdlib.ref -> State.t Stdlib.ref -> 'm
val compile_matcher_ko : ('a -> 'a * 'b * 'c) -> 'c Stdlib.ref -> 'a Stdlib.ref -> unit -> 'b
val compile_matcher : 'bs 'b 'm 'ms 't 'h 'c. ('bs, 'b, 'ms, 'm, 't, 'h, 'c) constructor_arguments -> ('ms, 'm, 't) match_t -> ('ms, 't) compiled_match_t
val tyargs_of_args : 'a 'b 'c 'd 'e. string -> ('a, 'b, 'c, 'd, 'e) compiled_constructor_arguments -> (bool * string * string) list
val compile_constructors : Conversion.ty_ast -> ('a, 'b, 'c) ContextualConversion.t -> string -> ('a, 'b, 'c) constructor list -> ('a, 'b, 'c) compiled_constructor Elpi_util.Util.Constants.Map.t * (bool * string * string) list Elpi_util.Util.StrMap.t
val document_constructor : Fmt.formatter -> string -> string -> (bool * string * string) list -> unit
val document_kind : Fmt.formatter -> Conversion.ty_ast -> unit
val document_adt : string -> Conversion.ty_ast -> ('a, 'b, 'c) constructor list -> (bool * string * string) list Elpi_util.Util.StrMap.t -> Fmt.formatter -> unit -> unit
val adt : mkinterval:(int -> int -> int -> term list) -> look:(depth:int -> term -> term) -> mkConst:(int -> term) -> alloc:(?name:string -> State.t -> State.t * 'a) -> mkUnifVar:('a -> args:term list -> State.t -> term) -> ('b, 'c, 'd) declaration -> ('b, 'c, 'd) ContextualConversion.t
OCaml

Innovation. Community. Security.