sig
  type t =
      [ `Abstract
      | `Annotation
      | `Bridge
      | `Enum
      | `Final
      | `Interface
      | `Module
      | `Native
      | `Private
      | `Protected
      | `Public
      | `Static
      | `Strict
      | `Super
      | `Synchronized
      | `Synthetic
      | `Transient
      | `Varargs
      | `Volatile ]
  type for_class =
      [ `Abstract
      | `Annotation
      | `Enum
      | `Final
      | `Interface
      | `Module
      | `Public
      | `Super
      | `Synthetic ]
  type for_inner_class =
      [ `Abstract
      | `Annotation
      | `Enum
      | `Final
      | `Interface
      | `Module
      | `Private
      | `Protected
      | `Public
      | `Static
      | `Super
      | `Synthetic ]
  type for_field =
      [ `Enum
      | `Final
      | `Module
      | `Private
      | `Protected
      | `Public
      | `Static
      | `Synthetic
      | `Transient
      | `Volatile ]
  type for_method =
      [ `Abstract
      | `Bridge
      | `Final
      | `Module
      | `Native
      | `Private
      | `Protected
      | `Public
      | `Static
      | `Strict
      | `Synchronized
      | `Synthetic
      | `Varargs ]
  type for_constructor =
      [ `Module
      | `Private
      | `Protected
      | `Public
      | `Strict
      | `Synthetic
      | `Varargs ]
  type for_initializer = [ `Static | `Strict ]
  type for_package = [ `Abstract | `Interface | `Synthetic ]
  type for_module = [ `Abstract | `Interface | `Synthetic ]
  type error =
      Invalid_class_flags of AccessFlag.t option
    | Invalid_inner_class_flags of AccessFlag.t option
    | Invalid_field_flags of AccessFlag.t option
    | Invalid_method_flags of AccessFlag.t option
    | Invalid_constructor_flags of AccessFlag.t option
    | Invalid_initializer_flags of AccessFlag.t option
    | Invalid_package_flags of AccessFlag.t option
    | Invalid_module_flags of AccessFlag.t option
    | Several_visibility_flags
    | Unknown_flag of string
  exception Exception of AccessFlag.error
  val string_of_error : AccessFlag.error -> string
  val to_u2 : AccessFlag.t -> Utils.u2
  val list_to_u2 : AccessFlag.t list -> Utils.u2
  val from_u2 : bool -> Utils.u2 -> AccessFlag.t list
  val to_string : AccessFlag.t -> string
  val of_string : string -> AccessFlag.t
  val to_utf8 : AccessFlag.t -> Utils.UTF8.t
  val of_utf8 : Utils.UTF8.t -> AccessFlag.t
  val list_to_utf8 : AccessFlag.t list -> Utils.UTF8.t
  val check_class_flags : AccessFlag.t list -> AccessFlag.for_class list
  val check_inner_class_flags :
    AccessFlag.t list -> AccessFlag.for_inner_class list
  val check_field_flags :
    bool -> AccessFlag.t list -> AccessFlag.for_field list
  val check_method_flags :
    bool -> AccessFlag.t list -> AccessFlag.for_method list
  val check_constructor_flags :
    AccessFlag.t list -> AccessFlag.for_constructor list
  val check_initializer_flags :
    AccessFlag.t list -> AccessFlag.for_initializer list
  val check_package_flags : AccessFlag.t list -> AccessFlag.for_package list
  val check_module_flags : AccessFlag.t list -> AccessFlag.for_module list
  val equal : AccessFlag.t -> AccessFlag.t -> bool
  val compare : AccessFlag.t -> AccessFlag.t -> int
  val hash : AccessFlag.t -> int
  val compare_according_to_visibility : AccessFlag.t -> AccessFlag.t -> int
  val list_compare_according_to_visibility :
    AccessFlag.t list -> AccessFlag.t list -> int
  val version_bounds : AccessFlag.t -> Version.bounds
end