sig
  type t
  val empty_scene : float -> float -> Image.t
  val rectangle :
    float -> float -> ?fill:bool -> ?outline_size:float -> Color.t -> Image.t
  val polygon :
    (float * float) list ->
    ?fill:bool -> ?outline_size:float -> Color.t -> Image.t
  val circle :
    float -> ?fill:bool -> ?outline_size:float -> Color.t -> Image.t
  val line : (float * float) list -> ?size:float -> Color.t -> Image.t
  val text : string -> ?size:float -> Color.t -> Image.t
  val read_image : string -> Image.t
  val place_image : Image.t -> float * float -> Image.t -> Image.t
  val place_images :
    Image.t list -> (float * float) list -> Image.t -> Image.t
  val to_bitmap : Image.t -> Cairo.Image.data32
  val from_bitmap : Cairo.Image.data32 -> Image.t
  val freeze : Image.t -> Image.t
  val draw : Cairo.context -> Image.t -> unit
end