sig
exception Graphic_failure of string
val open_graph : string -> unit
val close_graph : unit -> unit
val set_window_title : string -> unit
val resize_window : int -> int -> unit
val clear_graph : unit -> unit
val size_x : unit -> int
val size_y : unit -> int
type color = int
val rgb : int -> int -> int -> Graphics.color
val set_color : Graphics.color -> unit
val background : Graphics.color
val foreground : Graphics.color
val black : Graphics.color
val white : Graphics.color
val red : Graphics.color
val green : Graphics.color
val blue : Graphics.color
val yellow : Graphics.color
val cyan : Graphics.color
val magenta : Graphics.color
val plot : int -> int -> unit
val plots : (int * int) array -> unit
val point_color : int -> int -> Graphics.color
val moveto : int -> int -> unit
val rmoveto : int -> int -> unit
val current_x : unit -> int
val current_y : unit -> int
val current_point : unit -> int * int
val lineto : int -> int -> unit
val rlineto : int -> int -> unit
val curveto : int * int -> int * int -> int * int -> unit
val draw_rect : int -> int -> int -> int -> unit
val draw_poly_line : (int * int) array -> unit
val draw_poly : (int * int) array -> unit
val draw_segments : (int * int * int * int) array -> unit
val draw_arc : int -> int -> int -> int -> int -> int -> unit
val draw_ellipse : int -> int -> int -> int -> unit
val draw_circle : int -> int -> int -> unit
val set_line_width : int -> unit
val draw_char : char -> unit
val draw_string : string -> unit
val set_font : string -> unit
val set_text_size : int -> unit
val text_size : string -> int * int
val fill_rect : int -> int -> int -> int -> unit
val fill_poly : (int * int) array -> unit
val fill_arc : int -> int -> int -> int -> int -> int -> unit
val fill_ellipse : int -> int -> int -> int -> unit
val fill_circle : int -> int -> int -> unit
type image
val transp : Graphics.color
val make_image : Graphics.color array array -> Graphics.image
val dump_image : Graphics.image -> Graphics.color array array
val draw_image : Graphics.image -> int -> int -> unit
val get_image : int -> int -> int -> int -> Graphics.image
val create_image : int -> int -> Graphics.image
val blit_image : Graphics.image -> int -> int -> unit
type status = {
mouse_x : int;
mouse_y : int;
button : bool;
keypressed : bool;
key : char;
}
type event = Button_down | Button_up | Key_pressed | Mouse_motion | Poll
val wait_next_event : Graphics.event list -> Graphics.status
val mouse_pos : unit -> int * int
val button_down : unit -> bool
val read_key : unit -> char
val key_pressed : unit -> bool
val sound : int -> int -> unit
val auto_synchronize : bool -> unit
val synchronize : unit -> unit
val display_mode : bool -> unit
val remember_mode : bool -> unit
end