h,UI0      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                              0.0.2Generic XML Serialisation.(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHCNone"%&)-14=> [ohhecsGeneric pickling support.ohhecsA deriving-via helper.ohhecsA deriving-via helper. ohhecs)For when a type can be pickled as an XML . ohhecsA lower-level pickler class. ohhecsA combined pickler/unpickler.ohhecs A convenience wrapper around an  .ohhecs Serialise an a as a named .ohhecsDeserialise a named .ohhecsA generic pickler.ohhecsPickle adapter for ohhecsPickle adapter for ohhecsPickle adapter for ohhecsPickle adapter for ohhecsFormat field names nicelyohhecsFor record field selectorsohhecsFor constructorsohhecs For datatypesohhecsFor sums of constructorsohhecsFor products of fieldsohhecsFor empty constructors!ohhecsFor Maybe types"ohhecsFor individual fields=<   <=  Prototype definitions(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHC Trustworthy"%&)-14=> GohhecsA prototype's ID is distinct from its entity reference in that it is stable, and in a unique namespace.UQRSGHIGIHQSRUEntity references.(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHCNone"%&)-14=> Wohhecs2An efficient storage for a collection of entities.YohhecsA helper class for finding embedded entity references in components.[ohhecs$A reference to an entity in the ECS.`ohhecsWe reverse the byte order, just so there is a bit more variance between hashes.aohhecsAn instance for constructors which only contain an entity reference; we put that as an attribute.pohhecsGeneralisation of an W.qohhecs over each [ it holds.rohhecsEmpty storage.sohhecs A helper : for selecting entities which satisfy multiple predicates.uohhecsAccess the underlying .vohhecsConstruct a new W with a given [.wohhecsHelper 1 for selecting entities which satisfy predicates.ohhecs%For types which may have one or more W.wvu[\]WXYZstprq[\]YZWXuvwstpqr Collection types for components.(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHC Trustworthy"%&)-14=> ohhecsAn -based   storeohhecsA class for types which contain objects which are indexed by an [.ohhecsTraverse the collection.ohhecsSome components may be shared in common among a large number of entities, and may be expensive to compare for equality. This type can be used to store them efficiently by keeping only a single example around. Ws Ws ECS Slots(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHCNone"%&)-14=>ohhecs#A helper class for a generic "has" .ohhecsA + for accessing a well-known contained type.ohhecs2A getter for accesing a well-known contained type.ohhecs)A setter for a well-known contained type. ! Other junk.(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHCNone"%&)-14=>ohhecsa  .World definitions(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHC Trustworthy"%&)-14=>  ohhecs Simplified .ohhecsAn / is one which traverses either 0 or 1 elements.ohhecs A reified .ohhecs A reified .ohhecsWe want to make sure that the API is consistent based on the access type and availability property, so we have a type family to give us the correct optics.ohhecsA type function for simplifying the higher-kinded data implementation.ohhecs#A type which holds a collection of [.ohhecs=An entity component system, parameterised by its access type.ohhecsConstruct a new world.ohhecsCreate a new entityohhecs+Create a new entity with a given reference.ohhecs'Traversal over all entities in the ECS.ohhecs)Get the entity reference of an individualohhecs1Get and set the entity reference of an individualohhecs5Get all of the entity references stored in the world.ohhecsCheck if a given entity exists in the world, and if so, return the individual.ohhecs,Get a prototype specification from its name.ohhecsAn IndexedTraversal' which returns the individuals associated to the entities given as input.ohhecsAn IndexedTraversal' of individuals matching some constraints. The constraints are included monoidally.ohhecs8Store an individual in a world, returning the new world.ohhecs;Affine traversal for a specified individual from the world.ohhecsDifferent arities.ohhecs1An individual may or may not have this component.ohhecs*Every individual must have this component.ohhecs=Either a single individual, or none, may have this component.ohhecs HKD parameterisation for an ECS.ohhecsWe are dealing with the entire collection of entities in a world, represented structure-of-array style.ohhecsWe are dealing with a specific individual with specific component values.ohhecsFor entity unique values. We don't want to use Data.Unique, because we would like to be able to set the seed upon loading a save game.ohhecs,Atomically construct a new entity reference.ohhecs Construct an .ohhecs Construct an ."#$%&$System definitions(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHCNone"%&)-14=>% ohhecsA system which operates on entities which matches certain constraints on components.ohhecsWhat this systems runs afterohhecsWhat this systems runs beforeohhecs'Constraints required to run the system.ohhecs1The filter on components which the system affectsohhecs Should this entity be processed?ohhecsProcess a single entityohhecsInitialise the system with preliminary data based on a fresh world. The system is allowed to modify the world if it wishes.ohhecs$Run the system. By default, it runs  for each entity.ohhecsRun any cleanup necessary at the end of a tick, such as clearing cached data only necessary for the tick, or marking things as dirty.ohhecsRan after the effect system has finished. This is so that one can, for example, collect all effects to apply during the effect system processing; and once all effects are collected, apply them all at once. This can eliminate redundant processing, as well as later effects not overriding previously-processed effects.'()*+,-  6Saving and loading support for worlds and individuals.(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHCNone"%&)-14=>) ohhecs0Serialises an individual in an "individual" XML .ohhecs2Deserialises an individual in an "individual" XML .ohhecsA pickler for individuals.ohhecsA pickler for worlds.ohhecsSerialise a world as an XML .ohhecs Deserialise a world from an XML .ohhecs"Serialise an individual to an XML .ohhecsSerialise a world to an XML .ohhecs,Pretty-print an individual as formatted XML.ohhecs&Pretty-print a world as formatted XML.ohhecs!Serialise a world to an XML file.   &A simple message queue implementation.(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHC Trustworthy"%&)-14=>, ohhecsThe core message queue type.ohhecsWhich messages were processed.ohhecs%Monads which can atomically modify a .ohhecs?Monadically perform a given state transition atomically on the , and return the result.ohhecsAtomically modify a .ohhecsConstruct a new, empty .ohhecs Queue messageohhecs,Push a message on to the front of the queue.ohhecsQueue a series of messagesohhecsPops the message queueohhecs+Processes a message queue until it's empty.ohhecsPredicate on whether a message should be skipped this time round, and left in the queue.ohhecs%How to process an individual message.ohhecs The world.   $Components and their infrastructure.(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHCNone"%&)-14=>6ohhecsPlumbing class for a higher-kinded data representation of a game world. | Generalisation of "Array of Structures" vs "Structure of Arrays".ohhecsThe core mechanics of the higher-kinded representation for the ECS system.ohhecs'A component with an arbitrary name tag.ohhecs6Simplified type signature to use in world definitions.ohhecs$This is an unlawful instance due to  allowing write-back. FIXME: Write a valid definition of entityHasComponent, or make it only a psuedocomponent. instance Component Entity where type Prop Entity = Requiredohhecs Storage for  components. As a  component will have, at most, a single instance in the world, we only need to store the component and its [ naively.ohhecs7A component which indicates an ability to emit intents.ohhecsA component representing an intent to do something.ohhecs7Indicates whether a component is a simple Boolean flag.ohhecs experimentalGHC Trustworthy"%&)-14=>=4 ohhecsForms the accessor optic based on the properties of the component.ohhecs4Computes the name for a "classy optics" style class.ohhecs1Computes the name for the "Using" type synonyms.ohhecsCreates the "classy optics" class, and the "Using" type synonym, matching a .ohhecsCreate the accessing functions/optic signatures for a given component.ohhecsComputes the name for a component remover function, with a given postfix.ohhecs3Computes the name for a component remover function.ohhecsComputes the name for a component addition function, with a given postfix.ohhecs4Computes the name for a component addition function.ohhecsComputes the name for a "withComponent" function, with a given postfix.ohhecsMake the instance for the "classy optics" for a given world and canonically named component. We make the bodies for the optics for accessing components, as well as (law-breaking?) setters that create them if they're missing.ohhecsThis is so we do not have to use the Generics-based functions which use indexing, and so are hella slow. At this point, we do not need the generic-lens package at all. 0Template Haskell derivation of Component classes(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHCNone"%&)-14=>>  Prototype definitions(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHC Trustworthy"%&)-14=>?ohhecsA component for denoting that an individual is a prototype, to be instantiated later.ohhecsIndicates that this extends --- and overrides, in case of conflicting values --- another prototype.ohhecsThe G.QRSGHI Prototype definitions(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHC Trustworthy"%&)-14=>Bohhecs2Marks an entity as being spawned from a prototype.ohhecsThe G it is spawned from.ohhecs+The raw `Entity ` which it is spawned from.ohhecs0Spawn a new individual with the given prototype [: reference. Returns the new individual, and the new world.ohhecs%Spawns a new individual with a given G, which is looked up in the associated map. Returns the new individual, and the new world.ohhecs,All the prototypical individuals in a world.Template Haskell derivation of  classes(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHC Trustworthy"%&)-14=>EohhecsFind the position of the entity reference field in a (product) world type. We need this so we can ensure we initialise it with the correct type.ohhecsBody for constructing a new individual given an entity referenceohhecsCreates an expression for constructing a new individual, with the given entity reference value and initial component values.ohhecs6Creates an expression to construct a new, blank world.ohhecsImplements the = typeclass for a type, and creates numerous helper instances.Re-exports the public API.(C) 2020 Sophie TaylorAGPL-3.0-or-later&Sophie Taylor  experimentalGHCNone"%&)-14=>Fohhecs-A filter over entities in a world is just an ( that preserves the selection predicate.wvu[\]WXYZstprqQRSGHI  :;<=>?@@@ABBBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}}}~qS! 0"#&$%'+*(-),                                                                                2 7 5 6 4 3      S   8             9                  :;  :;999999999999ohhecs-0.0.2-inplaceGames.ECS.SerialisationGames.ECS.Prototype.PrototypeIDGames.ECS.EntityGames.ECS.Component.StoreGames.ECS.SlotGames.ECS.Util.MiscGames.ECS.WorldGames.ECS.SystemGames.ECS.SaveLoadGames.ECS.MessageQueueGames.ECS.ComponentGames.ECS.Component.THGames.ECS.Prototype(Games.ECS.Prototype.SpawnedFromPrototypeGames.ECS.World.TH Games.ECSohhecs$dmdeserialise $dmgxpicklef $dmserialise $dmxpickle$dmunPrototypeIDControl.Lens.TypeFoldISIntSetIntMap Component$dmentitiesTraversedLens' $dmgetTyped $dmsetTyped$dmtyped$dmcreateNewEntity $dmentities$dmentitiesWith $dmentity$dmlookupEntities$dmcomponentFilter$dminitialiseSystem$dmpostTickCleanup$dmprocessEntity$dmprocessPredicate$dmrunAfterEffects $dmrunSystemData.HashMap.StrictHashMapWorldhs$dm_ComponentFromXML $dmcomponents$dmdefaultValue$dmemptyStorage$dmentityHasComponent $dmentityKeys$dminjectMaybeGames.ECS.Component.TH.Internal&xml-types-0.3.8-BLIVnjZHiLkDoN1PWRGLOYData.XML.TypesNode GXmlPickler gxpicklefgxpickleContentsfAsListunAsListAsString unAsStringXMLPickleAsAttributepickleAsAttribute XMLPicklerxpickle XMLSerialise serialise deserialiseoptElemDoptElemCoptElem formatElement$fXMLPickleAsAttributea$fXMLPickleAsAttributeMaybe$fXMLPickleAsAttributeAsString$fIsListAsList$fGXmlPicklerListM1$fGXmlPicklerListM10$fGXmlPicklertM1$fGXmlPicklert:+:$fGXmlPicklerList:*:$fGXmlPicklerListU1$fGXmlPicklerListM11$fGXmlPicklertK1$fXMLPicklerTexta$fXMLPicklerListAsString$fXMLPicklerta$fXMLPicklerListChar$fXMLPicklerListList$fXMLPicklerListText$fXMLPicklerListBool$fXMLPicklerListDouble$fXMLPicklerListFloat$fXMLPicklerListInternedText$fXMLPicklerListInteger$fXMLPicklerListInt64$fXMLPicklerListInt32$fXMLPicklerListInt16$fXMLPicklerListInt8$fXMLPicklerListInt$fXMLPicklerListNatural$fXMLPicklerListWord64$fXMLPicklerListWord32$fXMLPicklerListWord16$fXMLPicklerListWord8$fXMLPicklerListWord$fXMLPicklerListHashMap$fXMLPicklerListOSet$fXMLPicklerListAsList$fXMLSerialisea $fShowAsList $fEqAsString$fShowAsString$fReadAsString$fIsStringAsString$fXMLPicklerListSeq$fXMLPicklerListHashSet"$fXMLPickleAsAttributeInternedText PrototypeID_unPrototypeID$fEqPrototypeID$fOrdPrototypeID$fShowPrototypeID!$fXMLPickleAsAttributePrototypeID$fGenericPrototypeID$fHashablePrototypeID$fIsStringPrototypeIDHasPrototypeID prototypeID unPrototypeID$fXMLPicklerListPrototypeID$fHasPrototypeIDPrototypeID EntitySetHasEntityReferencesgetEntityReferencesEntityEntRefunEntRef $fShowEntity$fHashableEntity$fXMLPicklerListEntity$fHasEntityReferencesEntity$fHasEntityReferencesEntitySet $fEqEntitySet$fShowEntitySet$fSemigroupEntitySet$fMonoidEntitySet $fEqEntity $fOrdEntity $fEnumEntity$fBoundedEntity $fIxEntity$fXMLPickleAsAttributeEntity$fGenericEntity IsEntityStore knownEntitiesblankEntityStorageIntersectionOfEntities Intersect theEntitySetsingletonEntitySetasIntersection$fMonoidIntersectionOfEntities!$fSemigroupIntersectionOfEntities%$fIsEntityStoreIntersectionOfEntities$fIsEntityStoreEntitySet$fIsEntityStoreIntSet$fIsEntityStoreHashSet$fEqIntersectionOfEntities$fShowIntersectionOfEntities HasEntitySet entitySet$fVectorVectorEntity$fMVectorMVectorEntity $fUnboxEntity$$fHasEntitySetIntersectionOfEntities$fHasEntitySetEntitySetComponentStoreEntityIndexedTraversableentitiesTraversed$fAsEmptyComponentStore$fIxedComponentStore$fAtComponentStore*$fTraversableWithIndexEntityComponentStore'$fFoldableWithIndexEntityComponentStore)$fEntityIndexedTraversableComponentStorec&$fFunctorWithIndexEntityComponentStore$fEqComponentStore$fShowComponentStore$fFunctorComponentStore$fGeneric1TYPEComponentStore$fFoldableComponentStore$fTraversableComponentStore$fGenericComponentStoreInternedComponentStoretheKeystheMap$fHasEntitySetComponentStore$fUninternableInternedComponent$fHashableDescription$fInternedInternedComponent$fHashableInternedComponent$fOrdInternedComponent$fEqInternedComponent$fAsEmptyInternedComponentStore$fIxedInternedComponentStore$fAtInternedComponentStore$fEqInternedComponentStore$fShowInternedComponentStore$fGenericInternedComponentStore$$fGeneric1TYPEInternedComponentStore$fEqDescription$fGenericInternedComponent$fShowInternedComponenttheInternedMap1$fEntityIndexedTraversableInternedComponentStorec$$fHasEntitySetInternedComponentStoreHasTypetypedgetTypedsetTyped HashableSeq$fHashableHashableSeq$fEqHashableSeqAffineTraversal'AffineTraversalAnAffineTraversal'AnAffineTraversal OpticsFor EntRefFieldEntRefStoringTypenewWorldcreateNewEntitycreateNewEntityWithRefentitiesentityReferenceunsafeEntityReferenceentityReferences lookupEntity prototypelookupEntities entitiesWith storeEntityentityPropsNormalRequiredUniqueAccessStoring IndividualnewUniqueEntRefaffineaffine'System RunsAfter RunsBeforeComponentFilterscomponentFilterprocessPredicate processEntityinitialiseSystem runSystempostTickCleanuprunAfterEffects entityPickler worldPicklerserialiseWorlddeserialiseWorldentityToXMLDoc worldToXMLDocrenderEntityAsXMLrenderWorldAsXMLwriteWorldToFile MessageQueue$fEqMessageQueue$fGenericMessageQueue$fEqDelayedOrNot$fGenericDelayedOrNot$fHashableDelayedOrNotMessagesProcessedAllMessagesProcessedNewMessagesProcessedMonadAtomicMessageQueuestateMessageQueuemodifyMessageQueuenewMessageQueue queueMessagequeueImmediateMessage queueMessages readMessageprocessMessageQueue$fHashableMessageQueue$fMonoidMessagesProcessed$fSemigroupMessagesProcessed$fHashableMessagesProcessed$fEqMessagesProcessed$fGenericMessagesProcessed$fShowMessagesProcessedEntityPropertyaccessor injectToFieldmaybeGet injectMaybe defaultFielddefaultStoragestorageFieldTaggedComponentTaggedunTagged AComponentHasn'tHasAHas UniqueStoreCapabilityComponentIntentReferenceComponentIntentComponent FlagComponentAttributeComponentEffectorComponentSensoryComponentCompositeComponentSubComponentIndexsubComponentReferences componentsComponentReference CanonicalNameIsFlagStorageProp_ComponentFromXML entityKeys emptyStorageentityHasComponent defaultValuePseudoComponentuntag$fAtUniqueStore$fIxedUniqueStore$fAsEmptyUniqueStore$fHasEntitySetUniqueStore$fShowTaggedComponent$fXMLPicklerListTaggedComponent $fXMLPicklerListTaggedComponent0%$fEntityPropertynamehkdStoringUniquea#$fEntityPropertynamehkdStoringpropa($fEntityPropertynamehkdIndividualUniquea($fEntityPropertynamehkdIndividualNormala*$fEntityPropertynamehkdIndividualRequireda$fIsLabelnameaccessorType$fEqTaggedComponent$fShowTaggedComponent0$fOrdTaggedComponent$fGenericTaggedComponent$fEqUniqueStore$fShowUniqueStore$fGenericUniqueStoremakeHasComponentClass IsPrototype_extendsPrototype_rawIsPrototypeID$fEqIsPrototype$fGenericIsPrototype$fShowIsPrototypeextendsPrototyperawIsPrototypeID$fComponentIsPrototype$fXMLPicklerListIsPrototype$fHasPrototypeIDIsPrototypeUsingIsPrototypeHasIsPrototype isPrototypeaddIsPrototyperemoveIsPrototypewithIsPrototypeSpawnedFromPrototype_spawnedFromPrototypeID_prototypeEntity$fEqSpawnedFromPrototype$fGenericSpawnedFromPrototype$fShowSpawnedFromPrototypeprototypeEntityspawnedFromPrototypeID$fComponentSpawnedFromPrototype$$fXMLPicklerListSpawnedFromPrototypeUsingSpawnedFromPrototypeHasSpawnedFromPrototypespawnedFromPrototypeaddSpawnedFromPrototyperemoveSpawnedFromPrototypewithSpawnedFromPrototypespawnPrototypespawnNamedPrototype prototypes makeWorld EntityFilter)xml-picklers-0.3.6-I2RCGAr2cc7BRENgjzaenmData.XML.Pickle AttributeElementgpicklexpSumbase GHC.Generics:+:Datatype ConstructorSelector<#>flattenContentpickleunpicklexpAddFixedAttrxpAllxpAllByNamespacexpAltxpAssertxpAttr xpAttrFixed xpAttrImplied xpAttribute xpAttribute' xpAttribute_xpBoolxpChoicexpCleanxpConst xpContent xpDefaultxpEitherxpElem xpElemAttrs xpElemBlankxpElemByNamespace xpElemExists xpElemNodes xpElemTextxpElemVerbatimxpElemWithNamexpElems xpFindFirst xpFindMatchesxpFstxpHeadxpIdxpIso xpIsolatexpListxpList0 xpListMinLenxpMap xpMayFailxpOptionxpPair xpPartialxpPeekxpPrimxpRoot xpSeqWhilexpSndxpString xpSubsetAllxpTextxpText0xpThrowxpTreexpTreesxpTriple xpTryCatchxpUnit xpUnliftElems xpWithDefaultxpWrap xpWrapEither xpWrapMaybe xpWrapMaybe_xpZeroData.XML.Pickle.Basic<++>ppUnpickleErrorData.XML.Pickle.TuplesgetResttErrxp2Tuplexp3Tuplexp4Tuplexp5Tuplexp6TuplePU pickleTree unpickleTree UnpickleError ErrorMessage TraceStepVariantsUnpickleResultNoResultResultUnresolvedEntityExceptionGHC.BaseMonoid!lens-5.2.3-7hx75B9KzUL1RfDwqEOlicIso''hashable-1.4.4.0-5hBSJOhedQ8AoX3sYMLvixData.Hashable.ClassHashablecontainers-0.6.8-inplaceData.Sequence.InternalSeqentUniqueSourceserialiseEntitydeserialiseEntityDocumentaccessorBuildermakeHasComponentClassNamemakeUsingComponentClassName"makeRawComponentAccessorSignaturesmakeRemoverName'makeRemoverNamemakeAdderName' makeAdderName makeWithName'makeComponentAccessormakeHasTypeInstance"makeConstructorPatternAndValuePairfindEntRefFieldPositionconstructAnEntityWithEntRef$constructAnEntityWithEntRefAndValuesconstructDefaultWorldIndexedTraversal'