sig
  type style = [ `ITALIC | `NORMAL | `OBLIQUE ]
  type weight_internal =
      [ `BOLD | `HEAVY | `LIGHT | `NORMAL | `ULTRABOLD | `ULTRALIGHT ]
  type weight =
      [ `BOLD
      | `CUSTOM of int
      | `HEAVY
      | `LIGHT
      | `NORMAL
      | `ULTRABOLD
      | `ULTRALIGHT ]
  type variant = [ `NORMAL | `SMALL_CAPS ]
  type stretch =
      [ `CONDENSED
      | `EXPANDED
      | `EXTRA_CONDENSED
      | `EXTRA_EXPANDED
      | `NORMAL
      | `SEMI_CONDENSED
      | `SEMI_EXPANDED
      | `ULTRA_CONDENSED
      | `ULTRA_EXPANDED ]
  type scale =
      [ `CUSTOM of float
      | `LARGE
      | `MEDIUM
      | `SMALL
      | `XX_LARGE
      | `XX_SMALL
      | `X_LARGE
      | `X_SMALL ]
  external scale_to_float : Pango.Tags.scale -> float = "ml_Pango_scale_val"
  type underline = [ `DOUBLE | `LOW | `NONE | `SINGLE ]
  type wrap_mode = [ `CHAR | `WORD | `WORD_CHAR ]
  type ellipsize_mode = [ `END | `MIDDLE | `NONE | `START ]
  external _get_tables :
    unit ->
    Pango.Tags.style Gpointer.variant_table *
    Pango.Tags.weight_internal Gpointer.variant_table *
    Pango.Tags.variant Gpointer.variant_table *
    Pango.Tags.stretch Gpointer.variant_table *
    Pango.Tags.underline Gpointer.variant_table *
    Pango.Tags.wrap_mode Gpointer.variant_table *
    Pango.Tags.ellipsize_mode Gpointer.variant_table = "ml_pango_get_tables"
  val style : style Gpointer.variant_table
  val weight : weight_internal Gpointer.variant_table
  val variant : variant Gpointer.variant_table
  val stretch : stretch Gpointer.variant_table
  val underline : underline Gpointer.variant_table
  val wrap_mode : wrap_mode Gpointer.variant_table
  val ellipsize_mode : ellipsize_mode Gpointer.variant_table
  val weight_to_int : Pango.Tags.weight -> int
end