Module TopDown.S.BuiltinFun

module BuiltinFun: sig .. end

type t = TopDown.S.T.t -> TopDown.S.T.t option 
type map 

Map symbols to builtin functions. Every symbol can only have at most one built-in function.

val create : unit -> map
val add : map -> Const.t -> t -> unit

Interpret the given constant by the given function. The function can assume that any term is it given as a parameter has the constant as head.

val add_list : map -> (Const.t * t) list -> unit
val interpreted : map -> Const.t -> bool

Is the constant interpreted by a built-in function?

val eval : map -> TopDown.S.T.t -> TopDown.S.T.t

Evaluate the term at root