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