sig
type ('a, 'b) t = World of 'a | Package of 'a * 'b
val big_bang :
?name:string ->
?width:int ->
?height:int ->
?to_draw:('a -> Image.t) ->
?on_tick:('a -> ('a, 'b) World.t) ->
?on_mouse:('a -> float -> float -> string -> ('a, 'c) World.t) ->
?on_key_press:('a -> string -> ('a, 'd) World.t) ->
?on_key_release:('a -> string -> ('a, 'e) World.t) ->
?rate:float ->
?stop_when:('a -> bool) ->
?to_draw_last:('a -> Image.t) ->
?register:string * string ->
?on_receive:('a -> 'f -> ('a, 'g) World.t) -> 'a -> unit
end