sig
  type semantics =
      [ `Color of Gg.Color.profile * bool | `Other of string * int ]
  val rgb_l : Gg.Raster.Sample.semantics
  val rgba_l : Gg.Raster.Sample.semantics
  val gray_l : Gg.Raster.Sample.semantics
  val graya_l : Gg.Raster.Sample.semantics
  val pp_semantics : Format.formatter -> Gg.Raster.Sample.semantics -> unit
  type pack =
      [ `FourCC of string * Gg.Ba.scalar_type option
      | `Other of string * Gg.Ba.scalar_type option
      | `PU8888 ]
  val pp_pack : Format.formatter -> Gg.Raster.Sample.pack -> unit
  type format
  val format :
    ?pack:Gg.Raster.Sample.pack ->
    Gg.Raster.Sample.semantics ->
    Gg.Ba.scalar_type -> Gg.Raster.Sample.format
  val semantics : Gg.Raster.Sample.format -> Gg.Raster.Sample.semantics
  val scalar_type : Gg.Raster.Sample.format -> Gg.Ba.scalar_type
  val pack : Gg.Raster.Sample.format -> Gg.Raster.Sample.pack option
  val dim : Gg.Raster.Sample.format -> int
  val scalar_count :
    ?first:int ->
    ?w_stride:int ->
    ?h_stride:int ->
    [ `D1 of Gg.size1 | `D2 of Gg.size2 | `D3 of Gg.size3 ] ->
    Gg.Raster.Sample.format -> int
  val pp_format : Format.formatter -> Gg.Raster.Sample.format -> unit
end