sig
  type t =
      [ `Array_type of Descriptor.array_type
      | `Class_or_interface of Name.for_class
      | `Float of float
      | `Int of int32
      | `Method_handle of Bootstrap.method_handle
      | `Method_type of Descriptor.for_method
      | `String of Utils.UTF8.t ]
  type set
  type error = Too_large of int | Too_many_constraints of int
  exception Exception of LdcConstraint.error
  val string_of_error : LdcConstraint.error -> string
  val make : unit -> LdcConstraint.set
  val add : LdcConstraint.t -> LdcConstraint.set -> unit
  val encode : LdcConstraint.set -> ConstantPool.extendable
  val equal : LdcConstraint.t -> LdcConstraint.t -> bool
  val compare : LdcConstraint.t -> LdcConstraint.t -> int
  val hash : LdcConstraint.t -> int
end