sig
  type flag = FMinus | FPlus | FSpace | FSharp | FZero
  type flags = Format_types.flag list
  type f_field_width = [ `FWInt of int | `FWStar ]
  type s_field_width = [ `FWInt of int ]
  type any_field_width = [ `FWInt of int | `FWStar ]
  type precision = PStar | PInt of int
  type length_modifier = [ `L | `| `hh | `| `| `ll | `| `z ]
  type signed_specifier = [ `| `i ]
  type unsigned_specifier = [ `| `| `x ]
  type integer_specifier = [ `| `| `| `| `x ]
  type float_specifier = [ `| `| `| `g ]
  type numeric_specifier = [ `| `| `| `| `| `| `| `| `x ]
  type capitalizable = [ `| `| `| `| `x ]
  type has_alternative_form = [ `| `| `| `| `| `x ]
  type f_conversion_specifier =
      [ `| `| `| `| `| `| `| `| `| `| `| `| `x ]
  type s_conversion_specifier =
      [ `Brackets of string
      | `a
      | `c
      | `d
      | `e
      | `f
      | `g
      | `i
      | `n
      | `o
      | `p
      | `s
      | `u
      | `x ]
  type any_conversion_specifier =
      [ `Brackets of string
      | `a
      | `c
      | `d
      | `e
      | `f
      | `g
      | `i
      | `n
      | `o
      | `p
      | `s
      | `u
      | `x ]
  type f_conversion_specification = {
    mutable f_flags : Format_types.flags;
    mutable f_field_width : Format_types.f_field_width option;
    mutable f_precision : Format_types.precision option;
    mutable f_length_modifier : Format_types.length_modifier option;
    mutable f_conversion_specifier : Format_types.f_conversion_specifier;
    mutable f_capitalize : bool;
  }
  type s_conversion_specification = {
    mutable s_assignment_suppression : bool;
    mutable s_field_width : Format_types.s_field_width option;
    mutable s_length_modifier : Format_types.length_modifier option;
    mutable s_conversion_specifier : Format_types.s_conversion_specifier;
  }
  type 'spec token = Char of char | Specification of 'spec
  type f_format =
      Format_types.f_conversion_specification Format_types.token list
  type s_format =
      Format_types.s_conversion_specification Format_types.token list
  type format =
      FFormat of Format_types.f_format
    | SFormat of Format_types.s_format
  type format_kind = PrintfLike | ScanfLike
end