úÎ&Ó#å,      !"#$%&'()*+Safe-FT Ü,A type family to be used in your ECS recrod.Describes how we can change an a.Keep the current value.&Delete the current value if it exists.Set the current value.<Data kind used to parameterize the fields of the ECS record.*This component can be owned by any entity.>This component can be owned by only a single entity at a time. .Data kind used to parameterize the ECS record. $Used to construct the actual entity. &Used to construct the world's storage. /Used to construct a setter to update an entity. .A computation to run over a particular entity."A monad over an ECS given a world w..A monad transformer over an ECS given a world w.The internal state of the  monad.The key for an entity.   Safe -;<=>?FSTVh ,-./01234,-./0123Safe %-7;<=Nh".NThis class provides all of the functionality necessary to manipulate the ECS.+Fetches an entity from the world given its . Updates an  in the world given its setter.`Transforms an entity into a setter to transform the default entity into the given one. Used by .)The default entity, owning no components.IThe default setter, which keeps all components with their previous value.-A setter which will delete the entity if its   matches.8The default world, which contains only empty containers.Retrieve a unique .Create a new entity.Delete an entity. Evaluate a  . Map a  / transformation over all entites that match it.!KCollect the results of a monadic computation over every entity matching a  ."Run a   over a particular .#Provides a resumable X. This is a pretty big hack until I come up with a better formalization for everything.$ Evaluate a .% Evaluate a .&Get the world.'Only evaluate this  - for entities which have the given component.(Only evaluate this  5 for entities which do not have the given component.)*Get the value of a component, failing the   if it isn't present.*(Attempt to get the value of a component.*  !"#$%&'()*3+ !"#$%&'()* 5      !"#$%&'()*+,-./0123456789:&ecstasy-0.1.1.0-JXkEP4ze6xLLtnhJiVXcbT Data.EcstasyData.Ecstasy.TypesData.Ecstasy.Derivingbase GHC.GenericsGeneric ComponentUpdateKeepUnsetSet ComponentTypeFieldUnique StorageTypeFieldOfWorldOfSetterOfQueryTSystemSystemT SystemStateEntunEntHasWorld getEntity setEntity convertSetter defEntity defEntity' delEntitydefWorld nextEntity newEntity deleteEntityunQueryTemapefor runQueryT yieldSystemT runSystemT runSystemgetWorldwithwithoutgetgetMaybe$fHasWorldworldGDefaultgdef GSetEntity gSetEntity GGetEntity gGetEntityGConvertSettergConvertSetterdef