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