sig
type id = Ent.id
type entity = Comp.entity
val get_id : UEnt.entity -> UEnt.id
val get_id_opt : UEnt.entity -> UEnt.id option
type world = Comp.world
val new_world : unit -> UEnt.world
val add_entity : UEnt.world -> UEnt.entity -> UEnt.world
val add_entities : UEnt.world -> UEnt.entity list -> UEnt.world
val add_entity_id : UEnt.world -> UEnt.entity -> UEnt.world * UEnt.id
val add_entities_id :
UEnt.world -> UEnt.entity list -> UEnt.world * UEnt.id list
val add_entities_init :
w:UEnt.world -> n:int -> f:(int -> UEnt.entity) -> UEnt.world
val add_entities_ar : UEnt.world -> UEnt.entity array -> UEnt.world
val add_entities_id_ar :
UEnt.world -> UEnt.entity array -> UEnt.world * UEnt.id array
val has_entity : UEnt.world -> UEnt.id -> bool
val replace_entity : UEnt.world -> UEnt.id -> UEnt.entity -> UEnt.world
val remove_entity : UEnt.world -> UEnt.entity -> UEnt.world
val remove_entity_id : UEnt.world -> UEnt.id -> UEnt.world
val get_entity : UEnt.world -> UEnt.id -> UEnt.entity
val get_entity_opt : UEnt.world -> UEnt.id -> UEnt.entity option
val get_entities : UEnt.world -> UEnt.id list -> UEnt.entity list
val do_get_entities : UEnt.world -> UEnt.id list -> UEnt.entity list
val get_entities_with_components :
UEnt.world -> Comp.component_type list -> UEnt.entity list
val iter_entities : (UEnt.entity -> unit) -> UEnt.world -> unit
val fold_entities : (UEnt.entity -> 'p -> 'p) -> UEnt.world -> 'p -> 'p
val num_entities : UEnt.world -> int
val num_entities_with_components :
UEnt.world -> Comp.component_type list -> int
type mapper = Comp.component_type Ent.mapper
val add_mapper :
UEnt.world -> Comp.component_type list -> UEnt.world * UEnt.mapper
type 'a update = 'a Ent.update
type 'delta system =
(Comp.component_type, Comp.component, 'delta) Ent.system
type ('delta, 'fld) foldable_system =
(Comp.component_type, Comp.component, 'delta, 'fld) Ent.foldable_system
type 'fld born_feedback_func =
(Comp.component_type, Comp.component, 'fld) Ent.born_feedback_func
val world_step :
UEnt.world -> 'delta UEnt.system -> UEnt.mapper -> 'delta -> UEnt.world
val world_step_fold :
UEnt.world ->
('delta, 'fld) UEnt.foldable_system ->
UEnt.mapper ->
?fb:'fld UEnt.born_feedback_func -> 'delta -> 'fld -> UEnt.world * 'fld
end