sig
val init : (Smt.Symbol.t * Smt.Type.t) list -> unit
val close : unit -> unit
val assign_constr : Smt.Symbol.t -> Hstring.t -> unit
val assign_var : Smt.Symbol.t -> Smt.Symbol.t -> unit
val print : unit -> unit
val get_variants : Smt.Symbol.t -> Hstring.HSet.t
end