sig
  type t = Hstring.t
  val declare :
    Hstring.t -> Smt_sig.S.Type.t list -> Smt_sig.S.Type.t -> unit
  val type_of :
    Smt_sig.S.Symbol.t -> Smt_sig.S.Type.t list * Smt_sig.S.Type.t
  val has_abstract_type : Smt_sig.S.Symbol.t -> bool
  val has_infinite_type : Smt_sig.S.Symbol.t -> bool
  val has_type_proc : Smt_sig.S.Symbol.t -> bool
  val declared : Smt_sig.S.Symbol.t -> bool
end