(* type shape = Circle ... | Square ... | Scene of scene and scene = shape list type scene = Circle ... | Square ... | Scene of scene list *) type shape = None | Circle of float * float * float type scene = None | Scene of shape list (* let append shape = function Scene sl -> Scene (shape::sl) | s2 -> Scene [shape;s2] *) let sceneAppend (Scene sl) shape = Scene (shape::sl) let sceneAppend shapeA shapeB = Scene [shapeA;shapeB] let main () = if not !Sys.interactive then Sdl.init [`VIDEO]; at_exit Sdl.quit; let screen = Sdlvideo.set_video_mode 640 640 [`DOUBLEBUF] in Sdlvideo.flip screen let _ = main ()