ú΋³ypÀ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ž ‘ ’ “ ” • – — ˜ ™ š › œ ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸¹º» ¼ ½ ¾ ¿         ÀÁÂÃÄ Å ÆÇJust to avoid a dependency. È3Read the lock and break it if the process is dead. É5Read the lock and return the process id if possible. Ê)Is this a permission error? If so we don't have permission to  remove the lock file, abort. ËÌÍBWe have determined the locking process is gone, try to remove the  lock. Î@An exception when we tried to break a lock, if it says the lock 7 file has already disappeared we are still good to go. Ï@Try to create lock by opening the file with the O_EXCL flag and B writing our PID into it. Verify by reading the pid back out and C matching, maybe some other process slipped in before we were done  and broke our lock. Ð;An exception saying the data is locked by another process. ÑAn exception saying we don'"t have permission to create lock. Ò=An exception saying another process broke our lock before we  finished creating it. CRelinquish the lock by removing it and then verifying the removal.     ÓÔÕÖרÙA saver that bunches writes. ÚÛÜ ÝÞßàáâMonad for ACID event handlers. ãä<ACID computations that work with any state and event types. åæçèéêëìíîïðñÝÞßàáâãäåæçèéêëìíîïðñÝÞßÞßàáâáâãäãäåæçèéêæçèéêëìíîìíîïðñ !"Enable queueing. #KA saver that operates on files. The parameter is the prefix for the files. $!A saver that discards all output %4Dispatches over the Saver type provided to return a  for the inferred  type. &IDispatches over the Saver type provided to return a WriterStream for the  inferred type. '( !"#$%&'( $#"!%&'( $#"!!"#$%&'()*+,GSubHandlers is used to build up the set of components corresponding to  the instance type. -.*In order to be used as a part of Happstack's MACID state, a data type C needs to be an instance of Component. The minimal definition is H an initialValue and the type corresponding to the set of Dependencies. F Note that the SubHandlers condition will be automatically met if the  Dependencies is built from @? and >= with other instances of  Component and Methods /012State type -> all versions 3State type -> method map 456KClass for enumerating the set of defined methods by the type of the state. 5 Instances should not be defined directly, but using  mkMethods 78AMethod is the actual type that all Updates and Querys eventually  get lifted into via  mkMethods. 9:;<=AType level Cons for enumerating type dependencies of a Component >?Equivalent of []9 for type level lists. Used for Components that have no  dependencies @ADisplays the type of a Method BCDE+An error is thrown when this is evaluated. òKThis is the instance that completes the definition of :+: and End as being J the constructors of a type level list in SubHandlers. Note that since b S needs to be an instance of SubHandlers, the list needs to be terminated with End. ó$In correspondence with its role as [] in the type level list, > the instance for End does not add any components to the set. )*+,-./0123456789:;<=>?@ABCDE?@=><;8:9A674532./01,-*+B)CDE)*++,--./01/01234556778:99:;<=>>?@@ABCDE(ôõö÷øùúûüýþÿFGThis function will derive, for the provided type name and the provided L list of methods, an instance of Methods for the given type and necessary Q instance of UpdateEvent and QueryEvent to make the provided list of functions  into Methods. M This TH splice needs to be executed for any MACID state type in order to 9 have the necessary code for event handling generated.  Ex:  $(mkMethods ''Foo [' fooUpdate,fooQuery])      @Ignoring EqualP predicates, returns all names associated with a  context predicate FFF GHI3Use a proxy to force the type of an update action. J1Forces the type of the proxy and update to match K1Use a proxy to force the type of a query action. L,Forces the type of proxy and query to match MCurrying version of I. NCurrying version of K. OSpecialized version of  PSpecialized version of  QSpecialized version of . RLift an STM action into Ev. S"Select a part of the environment. TQRun a computation with local state. Changes to state will be visible to outside. U$Run a computation with local state. V,Execute a Query action in the Update monad. GHIJKLMNOPQRSTUVGHHIJKLMNOPQRSTUV WGet a random number. X&Get a random number inside the range. YAInfer updating functions for a record. Given a data declaration  of *data Foo = Foo {bar :: String, baz :: Int} then $(inferRecordUpdaters ''Foo)  will define functions a_bar :: String -> Foo -> Foo, *withBar :: Update String a -> Update Foo a, 2 etc. that can be used as convenience updaters.  3Create a list of selection functions for a record. !0Create a list of update functions for a record. "Return field names #Simple definition WXYWXY ^Z[\]^_`abcdefgSaver given by the user. hiTypes of each component used. j(Map listing all versions of a component kl9Stores exclusive prefix lock (implemented in filesystem) mnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥OSchedule an update and wait for it to complete. When this function returns, you're + guaranteed the update will be persistent. ¦,Emit a state query and wait for the result. §¨©ª«¬­®¯°±²³´µ¶·^Z[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·^Z[\]^_`abŽŒŠ‹‘’“”•†‡ˆ‰–—˜™š›œžŸ ¡¢£¤„…‚ƒ¥¦§€~|}z{yvxwutpqrson¨©ª«¬­®¯°±²³´µ¶efghijklmcd·^Z[\]^_``abbcddefghijklmfghijklmnopqrsqrstuvxwwxyz{{|}}~€‚ƒƒ„……†‡ˆ‰‡ˆ‰Š‹‹ŒŽŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·$%&'()5Load state from disk and re-run any needed events to : fully restore the state. The returned function enables  event logging. *+,-./06Load a map from component types to serialized states. 123Creates a checkpoint using the provided TxControl. M This checkpoint may be used as a safe state with which to start the system, N e.g. one may delete all the serialized events that took place after the last A checkpoint and start the application fresh from the checkpoint. H Calling this function manually is the only way to create checkpoints. )2)23451Given a Saver and a Proxy, createTxControl will ; initialize a TxControl. This does not actually start the  state system. 6-Saves the state and closes the serialization ¸KRun the MACID system without multimaster support and with the given Saver. 7¹º Shuts down a transaction system ¸7¹º¸7¹º 89:;<=>?@»PStarts the MACID system without replication support. Uses the default behavior 0 of saving the state into the _local directory. ¼½DReturns the default Saver. It will save the application state into  the _local directory. ¾Wait for a signal. B On unix, a signal is sigINT or sigTERM. On windows, the signal  is entering e. ABCD¿»¼½¾¿»¼¿½¾»¼½¾¿rEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef !"#$)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY\]^e†‡ˆ‰™¥¦¸¹º»¼½¾¿-e¦¥ $#"!IJKLMNOPQRGHSTUV^\]™†‡ˆ‰WXY¸¹ºg !"#$%& ' ( ) * + , -./01234567889:;<=>?@AABCD('EFGGHHIJKLMN O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g g h h i i j j k l m n o p q r s t t u v w x y z { | } } ~ ~   €  ‚ ‚ ƒ ƒ „ „ … † ‡ ‡ ˆ ‰ Š ‹ Œ Ž ‘ ’ “ ” • – — ˜ ™ š › œ ž Ÿ X   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ²³´µ ¶ · ¸ ¹ º»¼½¾"¿ÀÁÂÃÄÅÆÇÈÉÊËÌÌÍÍÎÏÐÑÒÓ Ô Ô Õ Ö Ö × ) Ø Ù Ù Ú Û Ü Ý Þ Þ ß à á â ãäåæDçèéêëìíîïðñòóôõö÷øùúûüýþÿ              !"#$´%&'() * + , - . / 0 1 % 2 3 4 56786796:;6:<6:=6:>6:?6:@6:A6:B6:C6:D6:E6:F6:G6:H6:I6:J6:K6:L6:M6:N6:O6:P6:Q6RS6RT6RU6RV6RV6WX6WY6RZ6R[\happstack-state-6.1.1Happstack.State.Saver.TypesHappstack.State.Saver.Impl.File!Happstack.State.Saver.Impl.Memory Happstack.State.Saver.Impl.QueueHappstack.StateHappstack.State.SaverHappstack.State.ComponentSystemHappstack.State.ComponentTHHappstack.State.TransactionHappstack.State.ControlHappstack.State.TypesHappstack.State.MonadHappstack.State.UtilHappstack.State.CheckpointHappstack.State.TxControl WriterStream writerClose writerAddwriterAtomicReplace writerCut ReaderStream readerClose readerGetreaderGetUncut PrefixLock fileReader fileWriterobtainPrefixLockreleasePrefixLockStorenewMemoryStore memoryReader memoryWriterparseAll addToStoresetStore queueReader queueWriterUpdateQueryEvAnyEv EpochMilliTxId unsafeIOToEvSaverMemoryQueue FileSaver NullSaver createReader createWriter obtainLock releaseLockCollect Collection SubHandlers subHandlers Component Dependencies initialValueonLoadComponentVersions ComponentTree MethodMapMethodsmethodsMethod QueryEvent UpdateEvent:+:End methodTypeaddItemcollectHandlerscollectHandlers'dup mkMethodsCatchEvcatchEv setUpdateType proxyUpdate setQueryType proxyQueryasUpdateasQueryaskStategetStateputStateliftSTMsel localStatelocalStateReaderrunQuery getRandom getRandomRinferRecordUpdaters ExceptionTlogMTgetTimegetEventClockTime getEventIdGetCheckpointStateSetCheckpointState EventLogEntry TxControlctlSaver ctlEventSaverctlAllComponentsctlComponentVersions ctlChildren ctlPrefixLockctlCreateCheckpoint EvLoaders EvLoaders'TxRuntxProcessQueuetxLastTxContext ProcessQueue EventQueueResErrorOk RunHandlerHRIHREventEHRunnerGetState SetNewState EventItem eventContext eventData EmitInternalEventMap EventHandler QueryHandler UpdateHandler TypeStringemitRefemitFunc emitEvent' emitEventsetNewEventMapeventStreamRefinitEventStream pushEventItemgetEventStreamcreateEventMap extraEvents allStateTypescomponentVersions componentIOcreateNewTxRunsetNewStateType getStateType setNewState setNewState'updatequery quickQuery'setEvLoadersQueuerunObjectEventrunObjectEventFunc runColdEventrunColdEventFunclookupEventHandler eventTString handleEvent handleQuery handleUpdate checkDiff getEpochMilli newTxContextaddTxIdglobalRandomGen runTxLoop runTxSystemcreateCheckpointshutdownSystemstartSystemStatestartSystemStateAmazonstdSaverwaitForTerminationprocessLoggingFlagstryEcatchElogMFformatFilePath getAllFilesatomicWriteFile checkLockreadLockcheckReadFileErrormaybeBreakLockdoesProcessExist breakLockcheckBreakErrortakeLocklockedBycantLock stolenLockChEncodedItemAddClosenewChwriteChgetChsUsingXmlunXmlShadowunShadowunEv TxContexttxIdtxRandtxTimetxStdGenEnv evRandoms evContextintegralRandomR unsafeSTMToEv unsafeIOToSTM$fSubHandlers:+:$fSubHandlersEnd MethodInfo methodName methodKeys methodContext methodArgs methodClassmethodEv methodResultCtxElemCtxElemQnubCxtmkKeyConstraintsmkMethodConstraintssubstMethodContextmkTypegenSerializeInstancesgenComponentHandlersgenEventInstancesgenEventInstancemkCtxtgenMethodStructsgenMethodStruct upperName upperFirstgetMethodInfos getMethodInfoshowInfogetTypes getTypes' getStateKeys getPredKeys isMonadState isMonadReaderisMonadX isRelevantisAcceptableContextrequireSimpleConconv mtl-2.0.1.0Control.Monad.Reader.ClassaskControl.Monad.State.ClassgetputdecToSimpleRecord nameToDecselFunsupdFuns fieldNamessdefState stateVersion stateCutofflogMC restoreState loadState loadEvents withReader withWriter readState writeStateloadCheckpointssaveCheckpointsApplicationNamelogMMcreateTxControlcloseTxControlrunTxSystemAmazonFlag LogTargetLogLevelTargetSysLogStdOutFile NullLoggersetLoggingSettingsoptions readTarget castOptionshappstack-data-6.0.0Happstack.Data.SerializeTHderiveSerializeForderiveSerializeHappstack.Data.SerializemkObject parseObjectdeserializeObjectcollectVersions deserialize serializesafeGetsafePut getSafePut getSafeGet extensioncontain Contained Primitive VersionedModemodeVersionputCopygetCopy Serialize objectTypeObjectHappstack.Data.Proxy asProxyTypeunProxyproxyProxyHappstack.Data.MigratemigrateMigrate constr[aqY1]dataType[aqY0]