sig
  type t
  type elt
  val create : int -> int -> Genimage.IMAGE.t
  val make : int -> int -> Genimage.IMAGE.elt -> Genimage.IMAGE.t
  val destroy : Genimage.IMAGE.t -> unit
  val get : Genimage.IMAGE.t -> int -> int -> Genimage.IMAGE.elt
  val set : Genimage.IMAGE.t -> int -> int -> Genimage.IMAGE.elt -> unit
  val unsafe_get : Genimage.IMAGE.t -> int -> int -> Genimage.IMAGE.elt
  val unsafe_set :
    Genimage.IMAGE.t -> int -> int -> Genimage.IMAGE.elt -> unit
  val copy : Genimage.IMAGE.t -> Genimage.IMAGE.t
  val sub : Genimage.IMAGE.t -> int -> int -> int -> int -> Genimage.IMAGE.t
  val blit :
    Genimage.IMAGE.t ->
    int -> int -> Genimage.IMAGE.t -> int -> int -> int -> int -> unit
  val map :
    (Genimage.IMAGE.elt -> Genimage.IMAGE.elt -> Genimage.IMAGE.elt) ->
    Genimage.IMAGE.t ->
    int -> int -> Genimage.IMAGE.t -> int -> int -> int -> int -> unit
  val dump : Genimage.IMAGE.t -> string
  val unsafe_access : Genimage.IMAGE.t -> int -> int -> string * int
  val get_strip : Genimage.IMAGE.t -> int -> int -> int -> string
  val set_strip : Genimage.IMAGE.t -> int -> int -> int -> string -> unit
  val get_scanline : Genimage.IMAGE.t -> int -> string
  val set_scanline : Genimage.IMAGE.t -> int -> string -> unit
end