sig
  type t
  type elt
  val create : int -> int -> t
  val make : int -> int -> elt -> t
  val destroy : t -> unit
  val get : t -> int -> int -> elt
  val set : t -> int -> int -> elt -> unit
  val unsafe_get : t -> int -> int -> elt
  val unsafe_set : t -> int -> int -> elt -> unit
  val copy : t -> t
  val sub : t -> int -> int -> int -> int -> t
  val blit : t -> int -> int -> t -> int -> int -> int -> int -> unit
  val map :
    (elt -> elt -> elt) ->
    t -> int -> int -> t -> int -> int -> int -> int -> unit
  val dump : t -> bytes
  val unsafe_access : t -> int -> int -> bytes * int
  val get_strip : t -> int -> int -> int -> bytes
  val set_strip : t -> int -> int -> int -> bytes -> unit
  val get_scanline : t -> int -> bytes
  val get_scanline_ptr : t -> (int -> (bytes * int) * int) option
  val set_scanline : t -> int -> bytes -> unit
  val blocks : t -> int * int
  val dump_block : t -> int -> int -> Bitmap.Block.t
  type mapelt
  val get_color : t -> int -> int -> Image_intf.IMAGEINDEXED.mapelt
  val unsafe_get_color : t -> int -> int -> Image_intf.IMAGEINDEXED.mapelt
end