functor (B : Bitdepth->
  sig
    type t
    val create : int -> int -> string option -> Bitmap.Make.t
    val create_with : int -> int -> string -> Bitmap.Make.t
    val create_with_scanlines : int -> int -> string array -> Bitmap.Make.t
    val destroy : Bitmap.Make.t -> unit
    val access : Bitmap.Make.t -> int -> int -> string * int
    val get_strip : Bitmap.Make.t -> int -> int -> int -> string
    val set_strip : Bitmap.Make.t -> int -> int -> int -> string -> unit
    val get_scanline : Bitmap.Make.t -> int -> string
    val set_scanline : Bitmap.Make.t -> int -> string -> unit
    val get_scanline_ptr :
      Bitmap.Make.t -> (int -> (string * int) * int) option
    val dump : Bitmap.Make.t -> string
    val copy : Bitmap.Make.t -> Bitmap.Make.t
    val sub : Bitmap.Make.t -> int -> int -> int -> int -> Bitmap.Make.t
    val blit :
      Bitmap.Make.t ->
      int -> int -> Bitmap.Make.t -> int -> int -> int -> int -> unit
    val blocks : Bitmap.Make.t -> int * int
    val dump_block : Bitmap.Make.t -> int -> int -> Bitmap.Block.t
  end