sig
type iworld_t
type ('a, 'b) t =
State of 'a
| Bundle of 'a * (Universe.iworld_t * 'b) list * Universe.iworld_t list
val universe :
?on_new:('a -> Universe.iworld_t -> ('a, 'b) Universe.t) ->
?on_msg:('a -> Universe.iworld_t -> 'c -> ('a, 'b) Universe.t) ->
?rate:float ->
?on_tick:('a -> ('a, 'b) Universe.t) ->
?on_disconnect:('a -> Universe.iworld_t -> ('a, 'b) Universe.t) ->
'a -> unit
end