package lambdapi

  1. Overview
  2. Docs

Registering and checking builtin symbols.

val get : Sig_state.sig_state -> Common.Pos.popt -> string -> Term.sym

get ss pos name returns the symbol mapped to the builtin name. If the symbol cannot be found then Fatal is raised.

val get_opt : Sig_state.sig_state -> string -> Term.sym option

get_opt ss name returns Some s where s is the symbol mapped to the builtin name, and None otherwise.

val htbl : (string, Sig_state.sig_state -> Common.Pos.popt -> Term.sym -> unit) Hashtbl.t

Hash-table used to record checking functions for builtins.

val check : Sig_state.sig_state -> Common.Pos.popt -> string -> Term.sym -> unit

check ss pos name sym runs the registered check for builtin symbol name on the symbol sym (if such a check has been registered). Note that the bmap argument is expected to contain the builtin symbols in scope, and the pos argument is used for error reporting.

val register : string -> (Sig_state.sig_state -> Common.Pos.popt -> Term.sym -> unit) -> unit

register name check registers the checking function check, for the builtin symbols named name. When the check is run, check receives as argument a position for error reporting as well as the map of every builtin symbol in scope. It is expected to raise the Fatal exception to signal an error. Note that this function should not be called using a name for which a check has already been registered.

val register_expected_type : Term.term Lplib.Base.eq -> Term.term Lplib.Base.pp -> string -> (Sig_state.sig_state -> Common.Pos.popt -> Term.term) -> unit

register_expected_type name build pp registers a checking function that checks the type of a symbol defining the builtin name against a type constructed using the given build function.