sig
type t
val new_genesis : unit -> Mgk.t
val input_image : string -> Mgk.t -> unit
val set_size : wh:int * int -> Mgk.t -> unit
val init_canvas : string -> Mgk.t -> unit
val set_filename : string -> Mgk.t -> unit
val write_command : Mgk.t -> unit
val draw_line : int * int -> int * int -> Mgk.t -> unit
val draw_point : int * int -> Mgk.t -> unit
val draw_rectangle : int * int -> int * int -> Mgk.t -> unit
val draw_circle : int * int -> int -> Mgk.t -> unit
val draw_ellipse : int * int -> int * int -> Mgk.t -> unit
val draw_qbcurve : int * int -> int * int -> int * int -> Mgk.t -> unit
val draw_cbcurve :
int * int -> int * int -> int * int -> int * int -> Mgk.t -> unit
val draw_polygon : (int * int) list -> Mgk.t -> unit
val draw_text : int * int -> string -> Mgk.t -> unit
val set_font : string -> Mgk.t -> unit
val set_pointsize : int -> Mgk.t -> unit
val set_strokewidth : float -> Mgk.t -> unit
val set_fill : string -> Mgk.t -> unit
val set_stroke : string -> Mgk.t -> unit
type comp_op = string
val over : Mgk.comp_op
val multiply : Mgk.comp_op
val screen : Mgk.comp_op
val overlay : Mgk.comp_op
val darken : Mgk.comp_op
val lighten : Mgk.comp_op
val add : Mgk.comp_op
val subtract : Mgk.comp_op
val compositeop_of_string : string -> Mgk.comp_op
val set_composite_op : Mgk.comp_op -> Mgk.t -> unit
val composite : Mgk.t -> unit
val open_layer : (Mgk.t -> unit) -> Mgk.t -> unit
val set_geometry : int * int -> Mgk.t -> unit
val negate : Mgk.t -> unit
val blur : int -> Mgk.t -> unit
val normalize : Mgk.t -> unit
val shade : int * int -> Mgk.t -> unit
val modulate : int * int * int -> Mgk.t -> unit
end