sig   module Sample :     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   type t = Gg.raster   val v :     ?res:Gg.v3 ->     ?first:int ->     ?w_stride:int ->     ?h_stride:int ->     [ `D1 of float | `D2 of Gg.size2 | `D3 of Gg.size3 ] ->     Gg.Raster.Sample.format -> Gg.buffer -> Gg.Raster.t   val res : Gg.Raster.t -> Gg.v3 option   val get_res : Gg.Raster.t -> Gg.v3   val first : Gg.Raster.t -> int   val w_stride : Gg.Raster.t -> int   val h_stride : Gg.Raster.t -> int   val sample_format : Gg.Raster.t -> Gg.Raster.Sample.format   val buffer : Gg.Raster.t -> Gg.buffer   val wi : Gg.Raster.t -> int   val hi : Gg.Raster.t -> int   val di : Gg.Raster.t -> int   val w : ?meters:bool -> Gg.Raster.t -> float   val h : ?meters:bool -> Gg.Raster.t -> float   val d : ?meters:bool -> Gg.Raster.t -> float   val size1 : ?meters:bool -> Gg.Raster.t -> Gg.size1   val size2 : ?meters:bool -> Gg.Raster.t -> Gg.size2   val size3 : ?meters:bool -> Gg.Raster.t -> Gg.size3   val box1 : ?meters:bool -> ?mid:bool -> ?o:float -> Gg.Raster.t -> Gg.box1   val box2 : ?meters:bool -> ?mid:bool -> ?o:Gg.p2 -> Gg.Raster.t -> Gg.box2   val box3 : ?meters:bool -> ?mid:bool -> ?o:Gg.p3 -> Gg.Raster.t -> Gg.box3   val dim : Gg.Raster.t -> int   val kind : Gg.Raster.t -> [ `D1 | `D2 | `D3 ]   val sub :     [ `D1 of Gg.box1 | `D2 of Gg.box2 | `D3 of Gg.box3 ] ->     Gg.Raster.t -> Gg.Raster.t   val scalar_strides : Gg.Raster.t -> int * int * int   val equal : Gg.Raster.t -> Gg.Raster.t -> bool   val compare : Gg.Raster.t -> Gg.Raster.t -> int   val pp : Format.formatter -> Gg.Raster.t -> unit   val res_default : float   val spm_of_spi : float -> float   val spm_to_spi : float -> float end