sig
  val image_surface_create_from_channel :
    Pervasives.in_channel -> Cairo.image_surface
  val image_surface_create_from_file : string -> Cairo.image_surface
  external image_surface_create_from_stream :
    (string -> unit) -> Cairo.image_surface
    = "ml_cairo_image_surface_create_from_png_stream"
  val surface_write_to_channel :
    [> `Any ] Cairo.surface -> Pervasives.out_channel -> unit
  val surface_write_to_file : [> `Any ] Cairo.surface -> string -> unit
  external surface_write_to_stream :
    [> `Any ] Cairo.surface -> (string -> unit) -> unit
    = "ml_cairo_surface_write_to_png_stream"
end