123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475(* Make the Graphics module optional *)moduletypeGRAPHICS=sigtypecolor=inttypeevent=Button_down|Button_up|Key_pressed|Mouse_motion|Polltypestatus={mouse_x:int;(** X coordinate of the mouse *)mouse_y:int;(** Y coordinate of the mouse *)button:bool;(** true if a mouse button is pressed *)keypressed:bool;(** true if a key has been pressed *)key:char;(** the character for the key pressed *)}valopen_graph:string->unitvalclose_graph:unit->unitvalsynchronize:unit->unitvalrgb:int->int->int->colorvalset_line_width:int->unitvalset_color:color->unitvalplots:(int*int)array->unitvaldraw_poly_line:(int*int)array->unitvalfill_poly:(int*int)array->unitvaldraw_segments:(int*int*int*int)array->unitvalset_text_size:int->unitvalset_font:string->unitvalmoveto:int->int->unitvaldraw_string:string->unitvalread_key:unit->charvalclear_graph:unit->unitvalsize_x:unit->intvalsize_y:unit->intvalset_window_title:string->unitvalauto_synchronize:bool->unitvalwait_next_event:eventlist->statusvaltext_size:string->int*intendmoduleDummy=structletnoways=raise(Oplotdef.Not_implemented("Graphics."^s))typecolor=inttypeevent=Button_down|Button_up|Key_pressed|Mouse_motion|Polltypestatus={mouse_x:int;(** X coordinate of the mouse *)mouse_y:int;(** Y coordinate of the mouse *)button:bool;(** true if a mouse button is pressed *)keypressed:bool;(** true if a key has been pressed *)key:char;(** the character for the key pressed *)}letopen_graph_=noway"open_graph"letclose_graph()=noway"close_graph"letsynchronize()=noway"synchronize"letrgb___=noway"rgb"letset_line_width_=noway"set_line_width"letset_color_=noway"set_color"letplots_=noway"plots"letdraw_poly_line_=noway"draw_poly_line"letfill_poly_=noway"fill_poly"letdraw_segments_=noway"draw_segments"letset_text_size_=noway"set_text_size"letset_font_=noway"set_font"letmoveto__=noway"moveto"letdraw_string_=noway"draw_string"letread_key()=noway"read_key"letclear_graph()=noway"clear_graph"letsize_x()=noway"size_x"letsize_y()=noway"size_y"letset_window_title_=noway"set_window_title"letauto_synchronize_=noway"auto_synchronize"letwait_next_event_=noway"wait_next_event"lettext_size_=noway"text_size"end