sig
  class type class_definition_mapper =
    object
      method class_attribute : Attribute.for_class -> Attribute.for_class
      method class_attributes :
        Attribute.for_class list -> Attribute.for_class list
      method class_definition :
        AccessFlag.for_class list ->
        Name.for_class ->
        Name.for_class option ->
        Name.for_class list ->
        Field.t list ->
        Method.t list ->
        Attribute.for_class list ->
        AccessFlag.for_class list * Name.for_class * Name.for_class option *
        Name.for_class list * Field.t list * Method.t list *
        Attribute.for_class list
      method class_extends : Name.for_class option -> Name.for_class option
      method class_field : Field.t -> Field.t
      method class_fields : Field.t list -> Field.t list
      method class_flags :
        AccessFlag.for_class list -> AccessFlag.for_class list
      method class_implements : Name.for_class list -> Name.for_class list
      method class_method : Method.t -> Method.t
      method class_methods : Method.t list -> Method.t list
      method class_name : Name.for_class -> Name.for_class
      method constructor_attribute :
        Attribute.for_method -> Attribute.for_method
      method constructor_attributes :
        Attribute.for_method list -> Attribute.for_method list
      method constructor_descriptor :
        Descriptor.for_parameter list -> Descriptor.for_parameter list
      method constructor_flags :
        AccessFlag.for_constructor list -> AccessFlag.for_constructor list
      method constructor_method : Method.constructor -> Method.constructor
      method field_attribute : Attribute.for_field -> Attribute.for_field
      method field_attributes :
        Attribute.for_field list -> Attribute.for_field list
      method field_descriptor : Descriptor.for_field -> Descriptor.for_field
      method field_flags :
        AccessFlag.for_field list -> AccessFlag.for_field list
      method field_name : Name.for_field -> Name.for_field
      method initializer_attribute :
        Attribute.for_method -> Attribute.for_method
      method initializer_attributes :
        Attribute.for_method list -> Attribute.for_method list
      method initializer_flags :
        AccessFlag.for_initializer list -> AccessFlag.for_initializer list
      method initializer_method :
        Method.class_initializer -> Method.class_initializer
      method regular_method : Method.regular -> Method.regular
      method regular_method_attribute :
        Attribute.for_method -> Attribute.for_method
      method regular_method_attributes :
        Attribute.for_method list -> Attribute.for_method list
      method regular_method_descriptor :
        Descriptor.for_method -> Descriptor.for_method
      method regular_method_flags :
        AccessFlag.for_method list -> AccessFlag.for_method list
      method regular_method_name : Name.for_method -> Name.for_method
    end
  class default_class_definition_mapper : class_definition_mapper
  class type class_definition_iterator =
    object
      method class_attribute : Attribute.for_class -> unit
      method class_attributes : Attribute.for_class list -> unit
      method class_definition :
        AccessFlag.for_class list ->
        Name.for_class ->
        Name.for_class option ->
        Name.for_class list ->
        Field.t list -> Method.t list -> Attribute.for_class list -> unit
      method class_extends : Name.for_class option -> unit
      method class_field : Field.t -> unit
      method class_fields : Field.t list -> unit
      method class_flags : AccessFlag.for_class list -> unit
      method class_implements : Name.for_class list -> unit
      method class_method : Method.t -> unit
      method class_methods : Method.t list -> unit
      method class_name : Name.for_class -> unit
      method constructor_attribute : Attribute.for_method -> unit
      method constructor_attributes : Attribute.for_method list -> unit
      method constructor_descriptor : Descriptor.for_parameter list -> unit
      method constructor_flags : AccessFlag.for_constructor list -> unit
      method constructor_method : Method.constructor -> unit
      method field_attribute : Attribute.for_field -> unit
      method field_attributes : Attribute.for_field list -> unit
      method field_descriptor : Descriptor.for_field -> unit
      method field_flags : AccessFlag.for_field list -> unit
      method field_name : Name.for_field -> unit
      method initializer_attribute : Attribute.for_method -> unit
      method initializer_attributes : Attribute.for_method list -> unit
      method initializer_flags : AccessFlag.for_initializer list -> unit
      method initializer_method : Method.class_initializer -> unit
      method regular_method : Method.regular -> unit
      method regular_method_attribute : Attribute.for_method -> unit
      method regular_method_attributes : Attribute.for_method list -> unit
      method regular_method_descriptor : Descriptor.for_method -> unit
      method regular_method_flags : AccessFlag.for_method list -> unit
      method regular_method_name : Name.for_method -> unit
    end
  class default_class_definition_iterator : class_definition_iterator
  class type class_definition_folder =
    object ('a)
      method class_attribute : Attribute.for_class -> 'a
      method class_attributes : Attribute.for_class list -> 'a
      method class_definition :
        AccessFlag.for_class list ->
        Name.for_class ->
        Name.for_class option ->
        Name.for_class list ->
        Field.t list -> Method.t list -> Attribute.for_class list -> 'a
      method class_extends : Name.for_class option -> 'a
      method class_field : Field.t -> 'a
      method class_fields : Field.t list -> 'a
      method class_flags : AccessFlag.for_class list -> 'a
      method class_implements : Name.for_class list -> 'a
      method class_method : Method.t -> 'a
      method class_methods : Method.t list -> 'a
      method class_name : Name.for_class -> 'a
      method constructor_attribute : Attribute.for_method -> 'a
      method constructor_attributes : Attribute.for_method list -> 'a
      method constructor_descriptor : Descriptor.for_parameter list -> 'a
      method constructor_flags : AccessFlag.for_constructor list -> 'a
      method constructor_method : Method.constructor -> 'a
      method field_attribute : Attribute.for_field -> 'a
      method field_attributes : Attribute.for_field list -> 'a
      method field_descriptor : Descriptor.for_field -> 'a
      method field_flags : AccessFlag.for_field list -> 'a
      method field_name : Name.for_field -> 'a
      method initializer_attribute : Attribute.for_method -> 'a
      method initializer_attributes : Attribute.for_method list -> 'a
      method initializer_flags : AccessFlag.for_initializer list -> 'a
      method initializer_method : Method.class_initializer -> 'a
      method regular_method : Method.regular -> 'a
      method regular_method_attribute : Attribute.for_method -> 'a
      method regular_method_attributes : Attribute.for_method list -> 'a
      method regular_method_descriptor : Descriptor.for_method -> 'a
      method regular_method_flags : AccessFlag.for_method list -> 'a
      method regular_method_name : Name.for_method -> 'a
    end
  class default_class_definition_folder : class_definition_folder
end