sig
  type t = TopDown.S.T.t -> TopDown.S.T.t option
  type map
  val create : unit -> TopDown.S.BuiltinFun.map
  val add :
    TopDown.S.BuiltinFun.map -> Const.t -> TopDown.S.BuiltinFun.t -> unit
  val add_list :
    TopDown.S.BuiltinFun.map ->
    (Const.t * TopDown.S.BuiltinFun.t) list -> unit
  val interpreted : TopDown.S.BuiltinFun.map -> Const.t -> bool
  val eval : TopDown.S.BuiltinFun.map -> TopDown.S.T.t -> TopDown.S.T.t
end