Legend:
Library
Module
Module type
Parameter
Class
Class type
Scoped Terms
Those terms are not designed to be used directly, but rather to provide a generic backend (implementing De Bruijn indices, subterms, substitutions, etc.) for other more specific representations like LogtkType, LogtkFOTerm, FOLogtkFormula...
Some constructors, such as record, may raise IllFormedTermif the arguments are ill-formed (several occurrences of a key), or, for variables, if the number is negative
val hashcons_stats : unit -> int * int * int * int * int * int
Flags
be VERY careful with flags. Due to hashconsing, they will be shared between every instance of a term, so only use them for properties that are universal. Only Sys.word_size - 1 flags can exist in a program.
type print_hook = int ->(Buffer.t ->t-> unit)->Buffer.t ->t-> bool
User-provided hook that can be used to print terms (for composite cases) before the default printing occurs. The int argument is the De Bruijn depth in the term. A hook takes as arguments the depth and the recursive printing function that it can use to print subterms. A hook should return true if it fired, false to fall back on the default printing.
val pp_depth : ?hooks:print_hook list->int ->Buffer.t ->t-> unit