úÎ%"B*      !"#$%&'()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;<=>?ST» *+,-./012*+,-./01Safe%-7;<=N §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.8The default world, which contains only empty containers.Retrieve a unique .Create a new 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.(  !"#$%&'(0) !"#$%&'(  3      !"#$%&'()*+,-./012345678&ecstasy-0.1.0.1-AdTtBseG1b28S5CeFPLjLb Data.EcstasyData.Ecstasy.TypesData.Ecstasy.Derivingbase GHC.GenericsGeneric ComponentUpdateKeepUnsetSet ComponentTypeFieldUnique StorageTypeFieldOfWorldOfSetterOfQueryTSystemSystemT SystemStateEntunEntHasWorld getEntity setEntity convertSetter defEntity defEntity'defWorld nextEntity newEntityunQueryTemapefor runQueryT yieldSystemT runSystemT runSystemgetWorldwithwithoutgetgetMaybe$fHasWorldworldGDefaultgdef GSetEntity gSetEntity GGetEntity gGetEntityGConvertSettergConvertSetterdef