h$J8      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                             None ronAn infix form of  with arguments flipped.   ! "#$%T&{txvzuwy^`_'()*=@+,-./0123>?4ECD56789:;AB?4ECD56789:;AB x  z && y  zronSemilattice relation. Safe-Inferred-None ron& smart constructor dropping upper bitsron& smart constructor dropping upper bitsron& smart constructor dropping upper bitsron specialized for 7ron& smart constructor dropping upper bitsron specialized for 8ron& smart constructor dropping upper bitsron specialized for 9ron& smart constructor dropping upper bitsron specialized for :ron" smart constructor checking domain1789:1789:None %ronBase64 alphabetron/Check if a character is in the Base64 alphabet.ron*Convert a Base64 letter to a number [0-63]ron;Convert a subset [0-F] of Base64 letters to a number [0-15]ron"Decode a blob from a Base64 stringron+Decode a 60-bit number from a Base64 stringron+Decode a 60-bit number from a Base32 stringron+Decode a 64-bit number from a Base64 stringron+Decode a 64-bit number from a Base32 stringron Encode a blob to a Base64 stringron0Convert a number from [0..63] to a single letterron0Convert a number from [0..15] to a single letterron)Encode a 60-bit number to a Base64 stringronEncode a 60-bit number to a Base64 string, dropping trailing zeroesronEncode a 64-bit number to a Base32 string, dropping trailing zeroesron)Encode a 64-bit number to a Base64 stringNone  #$%&38: ronUUID split in partsron)Universally unique identifier of anythingronUUID with all zero fieldsronSplit UUID into partsronBuild UUID from partsron'Build former 64 bits of UUID from partsron'Build latter 64 bits of UUID from partsron#Make an unscoped (unqualified) nameron$Contruct a UUID name in compile-timeronMake a scoped (qualified) nameronConvert UUID to a nameronUUID with all zero fieldsronIncrement field  of a UUIDron Encode a UUID to a Base32 stringron"Decode a UUID from a Base32 stringronRON-Text-encodingronname, max 10 Base64 lettersronscope, max 10 Base64 lettersron!local name, max 10 Base64 lettersron (scope, name) for a scoped name;  (name, "") for a global name None!c None#%38:<$ron)Object reference accompanied with a frameronReference to an object TODO hide data constructor in Internal moduleronFrame containing only state chunks. Must contain one main object and any number of other objects that are part of the main one.ronType-tagged version of ronReduced chunk representing an object state (i. e. high-level value)ron Op terminatorron Common frameron Common chunkronCommon reduced chunkronOpen op (operation)ronevent id (usually timestamp)ron;reference to other op; actual semantics depends on the typeron Closed oprontyperon object idron7other keys and payload, that are common with reduced opronAtom @ a payload element>> None #$%&6ronSerialize a frameron Serialize an ronSerialize a string atom None  #$&ron Parse frameron Parse an ronParse a string atomNone& None  #$&([ron.Serialize UUID without context (used for test)ron Serialize UUID in op key contextron)Serialize UUID in op value (atom) contextron(same key in the previous op (default is )ron(previous key of the same op (default is )ronthisronpreviousronthisNone #$%*'ronSerialize a common frameron%Serialize a sequence of common framesronSerialize a context-free raw opronSerialize a context-free atomronSerialize a string atomronSerialize an abstract payloadronSerialize a state frameronSerialize an object. Return object id that must be stored separately.ronPrevious op idron Current op  None *{None #$%, ronParse a common frameron!Parse a sequence of common framesronParse a single context-free opron Parse a single context-free UUIDronParse a UUID in key positionron%Parse a UUID in value (atom) positionron Parse an atomronParse a string atomron7Parse a state frame TODO deprecate multi-object statesron Parse a state frame as an objectron(same key in the previous op (default is )ron(previous key of the same op (default is )ronpreviousNone-*  None #$%8<3ronGet current replica idronGet sequential timestamps.Laws:  ) t <- getEvents n (t !! i) == head t + i  t1 <-  t2 <-  t2 >= t1 + 1 getEvents 0 == getEvents 1ron"Make local time not less than thisron'Generic Lamport time event. Cannot be ! because we can't compare different types of clocks. If you want comparable events, use specific  EpochEvent.ronReplica identifier. Implementation: naming (62-61) and origin (60-0 bits) fields from UUIDronReplica id assignment styleronClock type is encoded in 2 higher bits of variety, value in uuidValueronCalendar format. See  (https://github.com/gritzko/ron/issues/191. Year range is 2010@2350. Precision is 100 ns.ronRFC 4122 epoch, hundreds of nanoseconds since 1582. Year range is 1582@5235.ron variant for any UUIDronGet a single eventronGet a single event as UUIDronGet event sequence as UUIDsron%Make a calendar timestamp from a dateron4Make a calendar timestamp from a date and a day timeronMake a calendar timestamp from a date, a day time, and a second fractionronMake a replica id from  and arbitrary numberronnumber of needed timestampsron(date as (year, month [1..12], day [1..])ron(date as (year, month [1..12], day [1..])ron%day time as (hours, minutes, seconds)ron(date as (year, month [1..12], day [1..])ron%day time as (hours, minutes, seconds)ron/fraction of a second in hundreds of nanosecond19None%6ron+ReplicaSim inside Lamport clock simulation.ron!Lamport clock simulation. Key is 3. Non-present value is equivalent to (0, initial).ronExecute network simulationUsage:  . runNetworkSimT $ do  r1 $ do actions...  r2 $ do actions...  r1 $ ... Each  starts its own networks. One shouldn't use in one network events generated in another.None8ronReal epoch clock. Uses kind of global variable to ensure strict monotonicity.ronRun $ action with explicit time variable.ronLike 6, but initialize time variable with current wall time.ronGet current time in Time format (with 100 ns resolution). Monotonicity is not guaranteed.ron?Convert unix time in hundreds of milliseconds to RFC 4122 time.ron.Decode date and time from UUID epoch timestamp !"#$%&'($)*$)+',-./01232456789:;<=<>$)?2@ABCD'E$)FGHIJ0KLMNOPQR$ST$SU$SV$SWXYXZX[X\]^_`a$Sb$Sc$Sdefegeheijk$Sl$Sm`n`o$Spjqjr$Ss$St$Suvwxyz{|}~5555MMMMMMMMMMMMMMMj222222<<<<<<|||'''$)$)$)$)$)$)$)$)$)$)yz                                                                                                             ron-0.12-H6CGha9E85SDsxBwhZfk7n RON.Prelude RON.ErrorRON.Binary.TypesRON.SemilatticeRON.Util RON.Util.Word RON.Base64RON.UUIDRON.UUID.Experimental RON.TypesRON.Binary.SerializeRON.Binary.ParseRON.Text.Serialize.UUIDRON.Text.SerializeRON.Text.Serialize.ExperimentalRON.Text.Parse RON.EventRON.Event.Simulation RON.Epoch Data.ZigZagAttoparsec.Extra RON.BinaryRON.TextbaseGHC.Base++GHC.Listfilterzip Data.Tuplefstsnd otherwisemap$ghc-primGHC.PrimcoerceGHC.Num- GHC.Classes==>=negate>>=>>fmapControl.Monad.FailfailGHC.Real fromIntegral realToFrac Control.Monadguard<>mempty<*>pure*>GHC.EnumBoundedEnumEqIntegralMonad Data.DataDataFunctorNumOrdGHC.ShowShowData.Typeable.InternalTypeable MonadFail Applicative Data.FoldableFoldable GHC.GenericsGeneric SemigroupMonoid GHC.TypesBoolCharDoubleIntGHC.IntInt8Int16Int32Int64integer-wired-inGHC.Integer.TypeInteger GHC.MaybeMaybeOrderingIOWordGHC.WordWord8Word16Word32Word64 Data.EitherEither CoercibleFalseNothingJustTrueLeftRightLTEQGTbytestring-0.10.10.0Data.ByteString.Internal ByteString'hashable-1.3.2.0-2PumsNVCSKx8UR2JlEXlunData.Hashable.ClassHashable Data.Functor<$><|>String text-1.2.3.2Data.Text.InternalTextconst.id time-1.9.3 Data.Time.Clock.Internal.UTCTimeUTCTime GHC.UnicodetoLower4unordered-containers-0.2.14.0-7xegloYXKrQFs2wz1wk2kBData.HashMap.InternalHashMapcontainers-0.6.2.1Data.Map.InternalMapData.Bifunctorbimap<* AlternativeData.List.NonEmptynonEmptyControl.Monad.IO.ClassliftIOMonadIOunless<=<>=>filterMData.Traversableforsequence sequenceAtraverseControl.ApplicativeoptionalData.Functor.IdentityIdentity GHC.IORefatomicModifyIORef' writeIORef readIORefnewIORefIORefGHC.IOevaluatethrowIOcatchFilePathGHC.Exception.Type Exceptionallanyorandasumfor_ traverse_elemlengthnulltoListfoldl'foldrfoldMapfold Data.MonoidLast Data.OldListunwordsunlinessortOnsortBysort genericLength partition intercalate isSuffixOf isPrefixOf Text.Read readMaybeeitherData.Ord comparingDown Data.ProxyProxytoUpper^^^%mod/roundmaxBoundminBoundfromEnumtoEnumpredsuccGHC.CharchrzipWithlookupspansplitAtdroptake takeWhile replicaterepeat Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybemaybe Data.Function&onvoid$><&>uncurrysubtract*+flipordwhen=<<sconcat<$liftA2manysome:|NonEmptyGHC.Err undefinederrorGHC.Stack.Types HasCallStackcompare<<=>maxmin/=&&||notData.Sequence.InternalSeqData.Set.InternalSethashtransformers-0.5.6.2Control.Monad.Trans.Classlift MonadTrans mtl-2.2.2Control.Monad.Writer.ClasstellControl.Monad.State.Classgetsmodify'putget MonadStateControl.Monad.Reader.Classasksreaderask MonadReaderControl.Monad.Error.Class liftEither catchError throwError MonadErrorControl.Monad.Trans.ExceptExceptT runExceptTControl.Monad.Trans.ReaderReaderT runReaderT Control.Monad.Trans.State.StrictStateT runStateTStaterunState evalState evalStateT execStateT!Control.Monad.Trans.Writer.StrictWriterT runWriterT&vector-0.12.3.0-Iq8W8y7X87B1xSQfAcXis3 Data.VectorVector ByteStringLfmapLfoldr1headMaylastDef maximumDef maximumMay maximumMayOnmaxOn minimumDef minimumMay minimumMayOnminOnnote replicateM2 replicateM3showwhenJust!!?:MonadEError descriptionreasons errorContext liftMaybeliftEitherStringthrowErrorTextthrowErrorStringcorrecttryIO$fIsStringError$fExceptionError $fShowError $fEqErrorDesc DOpClosed DOpReduced DOpHeaderDOpQueryHeader DUuidReducer DUuidObjectDUuidOpDUuidRef DAtomUuidZipDUuidZipObject DUuidZipOp DUuidZipRef DAtomUuid DAtomInteger DAtomString DAtomFloatSizedescIsOp $fEnumDesc$fEqDesc $fShowDescBoundedSemilattice Semilattice≼$fSemilatticeMaybe$fSemilatticeSet$fSemilatticeMaxInstanceSafeCastsafeCastWord60Word24Word12Word6W6Word4Word2B0000B11B10B01B00b00b01b10b11leastSignificant2b0000b0001b0010b0011b0100b0101b0110b0111b1000b1001b1010b1011b1100b1101b1110b1111leastSignificant4leastSignificant6ls6leastSignificant12ls12leastSignificant24ls24leastSignificant60ls60toWord60$fHashableWord60$fBoundedWord60 $fNumWord60$fSafeCastWord64Fixed$fSafeCastWord64Integer$fSafeCastWord60Word64$fSafeCastWord24Word32$fSafeCastWord24Word64$fSafeCastWord12Word64$fSafeCastWord8Word64$fSafeCastWord8Word32$fSafeCastWord6Word64$fSafeCastWord6Word60$fSafeCastWord6Word8$fSafeCastWord6Int$fSafeCastWord4Word8$fSafeCastWord4Word64$fSafeCastWord4Int$fSafeCastWord2Word64$fSafeCastWord2Word8$fSafeCastWord2Word4$fSafeCastWord2Int $fEnumWord60 $fEqWord60 $fOrdWord60 $fShowWord60 $fEqWord24 $fOrdWord24 $fShowWord24 $fEqWord12 $fOrdWord12 $fShowWord12 $fEqWord6 $fOrdWord6 $fShowWord6 $fEqWord4 $fOrdWord4 $fShowWord4 $fEqWord2$fHashableWord2 $fOrdWord2 $fShowWord2alphabetisLetter decodeLetter decodeLetter4decodedecode60decode60base32decode64decode64base32encode encodeLetter encodeLetter4encode60 encode60shortencode64base32shortencode64 UuidFields uuidVariety uuidValue uuidVariant uuidVersion uuidOriginUUIDZerosplitbuildbuildXbuildYmkNameliftName mkScopedNamegetNamezero succValue encodeBase32 decodeBase32 $fShowUUID$fEqUuidFields$fShowUuidFields $fDataUUID$fEqUUID $fGenericUUID$fHashableUUID $fOrdUUIDvarietyvaluevariantversionorigin OpenFrame OpPatternRegularDeleteUndeleteCreateAck AnnotationAnnotationDerived ObjectFrame$sel:uuid:ObjectFrame$sel:frame:ObjectFrame ObjectRef StateFrame StateChunkWireStateChunk$sel:stateType:WireStateChunk$sel:stateBody:WireStateChunkOpTermTClosedTReducedTHeaderTQuery WireFrame WireChunkClosedValueQueryWireReducedChunk$sel:wrcHeader:WireReducedChunk$sel:wrcBody:WireReducedChunkOp $sel:opId:Op $sel:refId:Op$sel:payload:OpPayloadClosedOp$sel:reducerId:ClosedOp$sel:objectId:ClosedOp$sel:op:ClosedOpAtomAFloatAIntegerAStringAUuid UndeletePDeletePAckPRegularPCreatePAnnotationDerivedP AnnotationP opPattern$fIsStringAtom$fShowClosedOp$fShowObjectRef$fEqObjectFrame$fShowObjectFrame $fEqObjectRef$fHashableObjectRef$fGenericObjectRef$fEqWireStateChunk$fShowWireStateChunk $fEqOpTerm $fShowOpTerm$fDataWireChunk $fEqWireChunk$fGenericWireChunk$fShowWireChunk$fDataWireReducedChunk$fEqWireReducedChunk$fGenericWireReducedChunk$fShowWireReducedChunk$fDataClosedOp $fEqClosedOp$fGenericClosedOp$fDataOp$fEqOp $fGenericOp $fHashableOp$fShowOp $fDataAtom$fEqAtom $fGenericAtom$fHashableAtom $fShowAtom serialize serializeAtomserializeStringparse parseAtom parseString serializeUuid uuidToString uuidToTextserializeUuidKeyserializeUuidAtomserializeWireFrameserializeWireFramesserializeRawOp serializeOpserializeOpenOpserializePayloadserializeStateFrameserializeObjectserializeOpenFrameparseWireFrameparseStateChunkparseWireFramesparseOp parseUuid uuidFromTextuuidFromString parseUuidKey parseUuidAtomparseStateFrame parseObjectparseOpenFrame parseOpenOp ReplicaClockgetPid getEventsadvanceEventtimereplicaReplica OriginVarietyTime TimeVariety CalendarTimemonthsdayshoursminutessecondsnanosecHundredsApplicationSpecific RecordForked CryptoForked TrieForkedUnknownEpochLogicalCalendar timeVariety timeValue advanceToUuidgetEvent getEventUuid getEventUuidsencodeCalendardecodeCalendar encodeEvent decodeEvent decodeReplicamkCalendarDatemkCalendarDateTimemkCalendarDateTimeNano mkReplicamkTimemkCalendarEvent$fShowTimeVariety $fShowTime$fShowOriginVariety $fShowReplica$fReplicaClockWriterT$fReplicaClockStateT$fReplicaClockReaderT$fReplicaClockExceptT $fEqEvent$fGenericEvent $fShowEvent $fEqReplica$fHashableReplica $fOrdReplica$fHashableOriginVariety$fEqTime $fOrdTime$fEqCalendarTime$fOrdCalendarTime$fShowCalendarTime ReplicaSimT NetworkSimTrunNetworkSimTrunReplicaSimT$fMonadTransNetworkSimT$fMonadFailReplicaSimT$fReplicaClockReplicaSimT$fMonadTransReplicaSimT$fApplicativeReplicaSimT$fFunctorReplicaSimT$fMonadReplicaSimT$fMonadErroreReplicaSimT$fApplicativeNetworkSimT$fFunctorNetworkSimT$fMonadNetworkSimT$fMonadErroreNetworkSimT EpochClock runEpochClockrunEpochClockFromCurrentTimegetCurrentEpochTimeepochTimeFromUnix$fReplicaClockEpochClock$fApplicativeEpochClock$fFunctorEpochClock$fMonadEpochClock$fMonadIOEpochClockzzEncode zzDecode64 parseOnlyLtakeL(attoparsec-0.14.1-3dFICCMt9ZhK0ruh1YfqzG#Data.Attoparsec.ByteString.Internal endOfInputExData.Attoparsec.Internal endOfInput isSuccessfuldefiniteDoubleData.Attoparsec.ByteString.Lazy parseOnly eitherResult maybeResult parseTestResultFailDonematch peekWord8' peekWord8notWord8word8anyWord8 notInClassinClass takeWhile1 runScannerscangetChunktakeLazyByteStringtakeByteStringtakeWhileIncludingtakeTill skipWhilestring satisfyWithskipsatisfyParserData.Attoparsec.CombinatorfeedeitherPcount skipMany1skipMany manyTill'manyTillsepBy1'sepBy1sepBy'sepBymany1'many1many'optionchoicetryatEndcompareResults withInputSizelabel??char<+>