!iV_h      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None apecs7Generate tuple instances for the following tuple sizes.None+;<=>?FKQTV3 apecs+Returns an unboxed vector of member indices apecs)Destroys the component for a given index. apecsWrites a componentapecsStores that support get and exists in the IO monad If existsIOapecsaReads a component from the store. What happens if the component does not exist is left undefined.apecs8Returns whether there is a component for the given indexapecs$Holds components indexed by entitiesapecs7Initialize the store with its initialization arguments.apecs(The type of components stored by a StoreapecsA world * a component if it can produce its StorageapecsA component is defined by the type of its storage The storage in turn supplies runtime types for the component. For the component to be valid, its Storage must be an instance of Store.apecs5A System is a newtype around `ReaderT w IO a`, where w is the game world variable.apecsCAn Entity is just an integer, used to index into a component store.,apecs/Pseudostore used to produce components of type Entity2apecs+Pseudostore used to produce values of type Maybe a4apecs+Pseudostore used to produce values of type Not a6apecs*Psuedocomponent indicating the absence of a.& ,-./01234567&  67452301./,-None ;<=>?Vjk. rapecsRun a system with a game worldsapecsRun a system with a game worlduapecsWrites a component to a given entity. Will overwrite existing components. The type was originally 'Entity c -> c -> System w ()', but is relaxed to 'Entity e' so you don't always have to write 'set . cast'vapecs/Returns whether the given entity has component c Note that cQ is a phantom argument, used only to convey the type of the entity to be queried.wapecs)Maps a function over all entities with a cx, and writes their cyxapecsDMonadically iterates over all entites with a cx, and writes their cyyapecs/Monadically iterates over all entites with a cxzapecsGet all components c . Call as  [(c,Entity)] to read the entity/index.{apecsDestroys component c" for the given entity. Note that cS is a phantom argument, used only to convey the type of the entity to be destroyed.|apecs Applies a function, if possible.}apecs%Counts the number of entities with a c rstuvwxyz{|} rstuvwxyz{|}None-;<=>?FTVijk;~apecsA cache around another store. Note that iterating over a cache is linear in cache size, so sparsely populated caches might actually decrease performance.apecsmAn empty type class indicating that the store behaves like a regular map, and can therefore safely be cached.apecs=A Global contains exactly one component. Initialized with  The store will return true for every existence check, but only ever gives (-1) as its inhabitant. The entity argument is ignored when setting/getting a global.apecsA Unique contains zero or one component. Writing to it overwrites both the previous component and its owner. Its main purpose is to be a Map8 optimized for when only ever one component inhabits it.apecsA map based on Data.Intmap.Strict . O(log(n)) for most operations.~~None;<=>?V?apecsExecutes a list of systems concurrently, and blocks until all have finished. Provides zero protection against race conditions and other hazards, so use with caution.apecsParallel version of cmap. apecsEntities per threadNone;<=>?FKTVjkU apecsuComponent used by newEntity to track the number of issued entities. Automatically added to any world created with  makeWorldapecsjConvenience entity (-1), used in places where the exact entity value does not matter, i.e. a global store.apecs,Bumps the EntityCounter and yields its valueapecshWrites the given components to a new entity, and yields that entity. The return value is often ignored.apecs'Explicitly invoke the garbage collectorapecsQuantize turns a world-space coordinate into a table-space coordinate by dividing by the given cell size and rounding towards negative infinity.apecs|Turns a table-space vector into an integral index, given some table size vector. Yields Nothing for out-of-bounds queriesapecsRTests whether a vector is in the region given by 0 and the size vector (inclusive)apecsFor two table-space vectors indicating a region's bounds, gives a list of the vectors contained between them. This is useful for querying a spatial hash.apecs6flatten, but yields garbage for out-of-bounds vectors.apecs5Runs a system and gives its execution time in secondsapecsKRuns a system, discards its output, and gives its execution time in secondsapecsQuantization cell sizeapecsVector to be quantizedapecsLower bound for the regionapecsHigher bound for the region None]apecsSame as  , but has no apecs7Same as makeWorld, but also makes a component instance:apecs 7makeWorld "WorldName" [''Component1, ''Component2, ...] turns into >data WorldName = WorldName Component1 Component2 ... EntityCounter instance WorldName `Has` Component1 where ... instance WorldName `Has` Component2 where ... ... instance WorldName `Has` EntityCounter where ... initWorldName :: IO WorldName initWorldName = WorldName <$> initStore <*> initStore <*> ... <*> initStore|None^ +67rstuvwxyz{|~&67~tuzwxy|{vrs  !"#$%&''())*+,-./01234567899::;;<<==>>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    $apecs-0.4.0.1-JKgnYxZgXrbCPgr8mPziUYApecs Apecs.Core Apecs.System Apecs.StoresApecs.Concurrent Apecs.UtilApecs.THApecs.THTuplesbaseControl.Monad.IO.ClassliftIOtransformers-0.5.5.0Control.Monad.Trans.Classlift mtl-2.2.2Control.Monad.Reader.ClassasksaskDestroyMembersSetGet ExplMembers explMembers ExplDestroy explDestroyExplSetexplSetExplGetexplGet explExistsExplInitexplInitElemHasgetStore ComponentStorageSystemunSystemEntityunEntity$fComponentIdentity$fHaswIdentity$fExplGetIdentity$fExplSetIdentity$fExplDestroyIdentity$fExplMembersIdentity $fNumEntity $fEqEntity $fOrdEntity $fShowEntity$fFunctorSystem $fMonadSystem$fApplicativeSystem$fMonadIOSystem EntityStore FilterStoreFilter MaybeStoreNotStoreNot$fExplMembers(,,,,,,,)$fExplDestroy(,,,,,,,)$fExplSet(,,,,,,,)$fExplGet(,,,,,,,)$fHasw(,,,,,,,)$fComponent(,,,,,,,)$fExplMembers(,,,,,,)$fExplDestroy(,,,,,,)$fExplSet(,,,,,,)$fExplGet(,,,,,,)$fHasw(,,,,,,)$fComponent(,,,,,,)$fExplMembers(,,,,,)$fExplDestroy(,,,,,)$fExplSet(,,,,,)$fExplGet(,,,,,) $fHasw(,,,,,)$fComponent(,,,,,)$fExplMembers(,,,,)$fExplDestroy(,,,,)$fExplSet(,,,,)$fExplGet(,,,,) $fHasw(,,,,)$fComponent(,,,,)$fExplMembers(,,,)$fExplDestroy(,,,)$fExplSet(,,,)$fExplGet(,,,) $fHasw(,,,)$fComponent(,,,)$fExplMembers(,,)$fExplDestroy(,,) $fExplSet(,,) $fExplGet(,,) $fHasw(,,)$fComponent(,,)$fExplMembers(,)$fExplDestroy(,) $fExplSet(,) $fExplGet(,) $fHasw(,)$fComponent(,)$fExplSetNotStore$fExplGetNotStore $fHaswNot$fComponentNot$fExplSetMaybeStore$fExplGetMaybeStore $fHaswMaybe$fComponentMaybe$fExplGetFilterStore $fHaswFilter$fComponentFilter$fExplGetEntityStore $fHaswEntity$fComponentEntity $fEqFilter $fShowFilter runSystemrunWithgetsetexistscmapcmapMcmapM_getAlldestroymodifycountCacheCachableGlobalUniqueMap$fExplMembersMap$fExplDestroyMap $fExplSetMap $fExplGetMap $fExplInitMap$fExplMembersUnique$fExplDestroyUnique$fExplSetUnique$fExplGetUnique$fExplInitUnique$fExplSetGlobal$fExplGetGlobal$fExplInitGlobal $fCachableMap$fExplMembersCache$fExplDestroyCache$fExplSetCache$fExplGetCache$fExplInitCache$fCachableCache concurrentlypmap EntityCounterglobal nextEntity newEntityrunGCquantizeflatteninboundsregionflatten' timeSystem timeSystem_$fComponentEntityCounter$fSemigroupEntityCounter$fMonoidEntityCounter$fEqEntityCounter$fShowEntityCounter makeWorldNoECmakeWorldAndComponents makeWorld makeInstancestupleInstancesGHC.Basemempty Data.Proxy asProxyTypeOfProxyKProxy