sig
  type for_field = Name.for_class * Name.for_field * Descriptor.for_field
  type for_method = Name.for_class * Name.for_method * Descriptor.for_method
  type for_constructor = Name.for_class * Descriptor.for_parameter list
  type t =
      GetField of Reference.for_field
    | GetStatic of Reference.for_field
    | PutField of Reference.for_field
    | PutStatic of Reference.for_field
    | InvokeVirtual of Reference.for_method
    | InvokeStatic of Reference.for_method
    | InvokeSpecial of Reference.for_method
    | NewInvokeSpecial of Reference.for_constructor
    | InvokeInterface of Reference.for_method
  type kind =
      REF_getField
    | REF_getStatic
    | REF_putField
    | REF_putStatic
    | REF_invokeVirtual
    | REF_invokeStatic
    | REF_invokeSpecial
    | REF_newInvokeSpecial
    | REF_invokeInterface
  type error = Invalid_kind of Utils.u1
  exception Exception of Reference.error
  val string_of_error : Reference.error -> string
  val u1_of_kind : Reference.kind -> Utils.u1
  val kind_of_u1 : Utils.u1 -> Reference.kind
  val utf8_for_field : Reference.for_field -> Utils.UTF8.t
  val utf8_for_method : Reference.for_method -> Utils.UTF8.t
  val utf8_for_constructor : Reference.for_constructor -> Utils.UTF8.t
  val to_utf8 : Reference.t -> Utils.UTF8.t
  val equal_for_field : Reference.for_field -> Reference.for_field -> bool
  val equal_for_method : Reference.for_method -> Reference.for_method -> bool
  val equal_for_constructor :
    Reference.for_constructor -> Reference.for_constructor -> bool
  val equal : Reference.t -> Reference.t -> bool
  val compare_for_field : Reference.for_field -> Reference.for_field -> int
  val compare_for_method :
    Reference.for_method -> Reference.for_method -> int
  val compare_for_constructor :
    Reference.for_constructor -> Reference.for_constructor -> int
  val compare : Reference.t -> Reference.t -> int
  val hash_for_field : Reference.for_field -> int
  val hash_for_method : Reference.for_method -> int
  val hash_for_constructor : Reference.for_constructor -> int
  val hash : Reference.t -> int
end