úÎVÖO^      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneŠ7Generate tuple instances for the following tuple sizes.€None;<=>?FKQTVŽ$Holds components indexed by entitiesLaws:For all entities in exmplMembers s, explExists s ety must be true.If for some entity explExists s ety,  explGet s ety) should safely return a non-bottom value.+The type of components stored by this StoreWrites a componentaReads a component from the store. What happens if the component does not exist is left undefined. )Destroys the component for a given index. +Returns an unboxed vector of member indices 8Returns whether there is a component for the given index A world  * a component if it can produce its StoragežA 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.5A system is a newtype around `ReaderT w IO a`, where w is the game world variable.-An Entity is really just an Int in a newtype./Pseudostore used to produce components of type Entity%+Pseudostore used to produce values of type  Either p q'+Pseudostore used to produce values of type Maybe a)+Pseudostore used to produce values of type Not a+*Psuedocomponent indicating the absence of a.   !"#$%&'()*+,F  ---------------------+,)*EDC'(HGF%&KJI#$!"NML QPO    !"#$%&'()*+,None ;<=>?Vij)Ů TRun a system with a game worldURun a system with a game worldWÓWrites 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'X/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.Y)Maps a function over all entities with a cx, and writes their cyZ/Monadically iterates over all entites with a cx[/Monadically iterates over all entites with a cx\Destroys 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.] Applies a function, if possible.^%Counts the number of entities with a c TUVWXYZ[\]^ TUVWXYZ[\]^None-;<=>?FTVhij2`œA cache around another store. Note that iterating over a cache is linear in cache size, so sparsely populated caches might actually decrease performance.a=A Global contains exactly one component. Initialized with boA Unique contains at most one component. Writing to it overwrites both the previous component and its owner.cmA map from Data.Intmap.Strict. O(log(n)) for most operations. Yields safe runtime representations of type Maybe c._`abcc`ba_`‚aƒb„c…None;<=>?V6:j¨Executes a list of systems concurrently, and blocks until all have finished. Provides zero protection against race conditions and other hazards, so use with caution.kParallel version of cmap. kEntities per threadjkjkNone;<=>?FKTVijF° l!Secretly just an int in a newtypeo,Bumps the EntityCounter and yields its valuepCWrites the given components to a new entity, and yields that entityq'Explicitly invoke the garbage collectorr“Quantize turns a world-space coordinate into a table-space coordinate by dividing by the given cell size and rounding towards negative infinity.s|Turns a table-space vector into an integral index, given some table size vector. Yields Nothing for out-of-bounds queriestRTests whether a vector is in the region given by 0 and the size vector (inclusive)uœFor 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.v6flatten, but yields garbage for out-of-bounds vectors.w5Runs a system and gives its execution time in secondsxKRuns a system, discards its output, and gives its execution time in secondsrQuantization cell sizeVector to be quantizeduLower bound for the regionHigher bound for the regionlmnopqrstuvwxqmnloprstuvwxl†‡NoneMř}Same as ~ , but has no l~ 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|}~~}NoneN@# +,TUVWXYZ[\]abclmnpq~# +,cbaVWYZ[]\XTUqlpmn~ˆ  !!"#$%&'()*+,,--..//0011223456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…† ‡ˆfghir‰Š$apecs-0.3.0.0-82I3jqL8wUgK1DdhYZncMEApecs Apecs.Core Apecs.System Apecs.StoresApecs.Concurrent Apecs.UtilApecs.THApecs.THTuplesbaseControl.Monad.IO.ClassliftIOtransformers-0.5.2.0Control.Monad.Trans.Classlift mtl-2.2.1-DscMMmDQUE6GBfOSl4qMUHControl.Monad.Reader.ClassasksaskStoreElem initStoreexplSetexplGet explDestroy explMembers explExistsHasgetStore ComponentStorageSystemunSystemEntity$fStoreIdentity$fComponentIdentity$fHaswIdentity $fEqEntity $fOrdEntity $fShowEntity$fFunctorSystem $fMonadSystem$fApplicativeSystem$fMonadIOSystem EntityStore FilterStoreFilter EitherStore MaybeStoreNotStoreNotD:R:Elem(,,,,,,,)$fStore(,,,,,,,)$fHasw(,,,,,,,)$fComponent(,,,,,,,)$fStore(,,,,,,)$fHasw(,,,,,,)$fComponent(,,,,,,)$fStore(,,,,,) $fHasw(,,,,,)$fComponent(,,,,,) $fStore(,,,,) $fHasw(,,,,)$fComponent(,,,,) $fStore(,,,) $fHasw(,,,)$fComponent(,,,) $fStore(,,) $fHasw(,,)$fComponent(,,) $fStore(,) $fHasw(,)$fComponent(,)$fStoreNotStore $fHaswNot$fComponentNot$fStoreMaybeStore $fHaswMaybe$fComponentMaybe$fStoreEitherStore $fHaswEither$fComponentEither$fStoreFilterStore $fHaswFilter$fComponentFilter$fStoreEntityStore $fHaswEntity$fComponentEntity $fEqFilter $fShowFilter runSystemrunWithgetsetexistscmapcmapMcmapM_destroymodifycountCachableCacheGlobalUniqueMap $fStoreMap $fStoreUnique $fStoreGlobal $fStoreCache$fCachableCache $fCachableMap concurrentlypmap EntityCounterglobalproxy nextEntity newEntityrunGCquantizeflatteninboundsregionflatten' timeSystem timeSystem_$fComponentEntityCounter$fMonoidEntityCounter$fEqEntityCounter$fShowEntityCounter makeWorldNoEC makeWorld makeInstancestupleInstancesGHC.Basemempty getCounter