!      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                         ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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 [ \ ] ^ _ ` a b c d e f g h i j k l m n o p qrstuvwxyz{|}~None_mronAn infix form of  with arguments flipped.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde0NonemfgNone_mronData block descriptorron"Does the descriptor refer to an op  None,9>m !! None,EXm&'((&'Nonem>hroni adapter to (jron Variant of k with a more debuggable message.lronFApply parser and check it is applied successfully. Kinda opposite to .<mnopqrstuvwxyz{|}~ikhjl3None@AMagkm&$ ;ron1& smart constructor dropping upper bitsLron0& smart constructor dropping upper bitsMron.& smart constructor dropping upper bitsNronM specialized for Oron-& smart constructor dropping upper bitsPronO specialized for Qron,& smart constructor dropping upper bitsRronQ specialized for Sron+& smart constructor dropping upper bitsTronS specialized for Uron+" smart constructor checking domain2)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV21789:6543;0<=>?@ABCDEFGHIJK2L./MN-OP,QR+STUV)*None_am4ronBase64 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 stringronCEncode a 60-bit number to a Base64 string, dropping trailing zeroesronCEncode a 64-bit number to a Base32 string, dropping trailing zeroesron)Encode a 64-bit number to a Base64 stringNone "#$%279XgmAronUUID 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 nameNone "$279_dgmKron8Specific field or item in an object, identified by UUID.ron&Reference to an object inside a frame.ron"Frame containing only state chunksronCReduced 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 typeronpayloadron Closed oprontyperon object idron7other keys and payload, that are common with reduced opronAtom  a payload element>>None"#$_`mR& ronSerialize a frameronSerialize a chunkronSerialize a closed opronSerialize a reduced opron Serialize a ronEncode descriptorron(Prepend serialized bytes with descriptorron Serialize an ronSerialize a float atomronSerialize a reduced chunkronSerialize a string atomronbody None "#PX_`am_ron for descriptorron for extended length fieldron Parse frameron for frameron for chunk sequenceronClear upper bit of ron for a chunkronAssert that is such as expectedron for a sequence of reduced opsron? for closed op, returning the op's terminator along with the opron@ for reduced op, returning the op's terminator along with the opron! for closed op without terminatorron" for reduced op without terminatorron2 for an op key (type, object, event, or reference)ron for UUIDron" for a payload (sequence of atoms)ron for an atom ron Parse an ron for a float atomron for an integer atomron for an string ronParse a string atomronexpected input lengthronexpected input lengthronexpected input lengthronexpected input lengthronexpected input length    Nonem`K None "#$79_agmx| ronGet current replica id ronGet 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 thisron1Epoch-based Lamport time event, specific case of .ron4Calendar-based Lamport time event, specific case of .ron'Generic Lamport time event. Cannot be b because we can't compare different types of clocks. If you want comparable events, use specific .ronReplica identifierronReplica id assignment styleronEClock type is encoded in 2 higher bits of variety, value in uuidValueron +https://en.wikipedia.org/wiki/Logical_clock!ronMRFC 4122 epoch, hundreds of nanoseconds since 1582. Year range is 1582 5235."ronCalendar format. See  (https://github.com/gritzko/ron/issues/191. Year range is 2010 2350. Precision is 100 ns.-ron variant for any UUID.ronGet a single event/ronGet a single event as UUID0ronGet event sequence as UUIDs3ron%Make a calendar timestamp from a date4ron4Make a calendar timestamp from a date and a day time5ronHMake a calendar timestamp from a date, a day time, and a second fraction6ronMake an ! replica id from arbitrary number ronnumber of needed timestamps3ron(date as (year, month [1..12], day [1..])4ron(date as (year, month [1..12], day [1..])ron%day time as (hours, minutes, seconds)5ron(date as (year, month [1..12], day [1..])ron%day time as (hours, minutes, seconds)ron/fraction of a second in hundreds of nanosecond,    !"#($%&')*+,-./0123456,"#($%&')!    -621*+./0345, NoneM_mPron+ReplicaSim inside Lamport clock simulation.Rron!Lamport clock simulation. Key is 3. Non-present value is equivalent to (0, initial).SronExecute network simulationUsage: runNetworkSim $ do U r1 $ do actions... U r2 $ do actions... U r1 $ ... Each SX starts its own networks. One shouldn't use in one network events generated in another.OPQRSTUVQROPSTUV NoneMm bronNReal epoch clock. Uses kind of global variable to ensure strict monotonicity.cronRun b$ action with explicit time variable.dronLike c6, but initialize time variable with current wall time.eronGet current time in !B format (with 100 ns resolution). Monotonicity is not guaranteed.ron?Convert unix time in hundreds of milliseconds to RFC 4122 time.fron?Convert unix time in hundreds of milliseconds to RFC 4122 time.gron.Decode date and time from UUID epoch timestampbcdefghbghefcd None "#%X_gmnron.Serialize UUID without context (used for test)oron Serialize UUID in op key contextpron)Serialize UUID in op value (atom) contextoron(same key in the previous op (default is )ron(previous key of the same op (default is )ronthispronpreviousronthisnopnpoNone"#$_agmm qronSerialize a common framerron%Serialize a sequence of common framesronSerialize a common chunkronSerialize a reduced chunksronSerialize a context-free raw opron5Serialize a raw op with compression in stream contextron9Serialize a reduced op with compression in stream contexttronSerialize a context-free atomron=Serialize an atom with compression for UUID in stream contexturonSerialize a string atomron%Serialize a payload in stream contextvronSerialize a state framewronESerialize an object. Return object id that must be stored separately.ronenclosing objectronprevious UUID (default is )nqrstuvwtwsvunqrNone "#$_`admxronParse a common frameron%Returns a chunk and the last op in itron;Returns a chunk and the last op (converted to closed) in ityron!Parse a sequence of common frameszronParse a single context-free op{ron Parse a single context-free UUID|ronParse a UUID in key position}ron%Parse a UUID in value (atom) position~ron Parse an atomronParse a string atomronReturn  and  chunkIsQueryronParse a state frameron Parse a state frame as an objectron)Extract object states from a common frame|ron(same key in the previous op (default is )ron(previous key of the same op (default is )}ronprevious xyz{|}~ ~z{|}xyNonemlqrvwxyxywvqr !"#$%&'()*+,-./01223456789:;<<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                      ! " # $ % & ' ( ) * + + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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 [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u vwxyz{|}~      !"#$%&'()*+*,*-*./0/1/2/3456789:;<=<=>?>@>A>B>C>D>E>F>GHIJIKIKLMLNOPQRSTUVWXYZ[\]^_`abcdefghijklmnmopqrstuvwuvxyz{yz|y}~y}y}y}y}y}yyyyyyuuuuuuuuuuuuuu[\t                    ron-0.5-C27LrfI17c667EjJcfdGXb RON.Util.WordRON.Binary.Types RON.ErrorRON.Util RON.Base64RON.UUID RON.TypesRON.Binary.SerializeRON.Binary.Parse RON.EventRON.Event.Simulation RON.EpochRON.Text.Serialize.UUIDRON.Text.SerializeRON.Text.ParsePrelude Data.ZigZagAttoparsec.Extra RON.BinaryRON.TextbaseGHC.WordWord8Word16Word32Word64Desc DOpClosed DOpReduced DOpHeaderDOpQueryHeader DUuidReducer DUuidObjectDUuidOpDUuidRef DAtomUuidZipDUuidZipObject DUuidZipOp DUuidZipRef DAtomUuid DAtomInteger DAtomString DAtomFloatSizedescIsOp $fEnumDesc$fEqDesc $fShowDescMonadEError ErrorContext errorContext liftMaybethrowErrorTextthrowErrorString$fIsStringError$fExceptionError $fEqError $fShowErrorInstance ByteStringLSafeCastsafeCastWord60Word24Word12Word6W6Word4Word2B0000B11B10B01B00b00b01b10b11leastSignificant2b0000b0001b0010b0011b0100b0101b0110b0111b1000b1001b1010b1011b1100b1101b1110b1111leastSignificant4leastSignificant6ls6leastSignificant12ls12leastSignificant24ls24leastSignificant60ls60toWord60 word60add$fHashableWord60$fBoundedWord60$fSafeCastWord64Fixed$fSafeCastWord64Integer$fSafeCastWord60Word64$fSafeCastWord24Word32$fSafeCastWord24Word64$fSafeCastWord12Word64$fSafeCastWord8Word64$fSafeCastWord8Word32$fSafeCastWord6Word64$fSafeCastWord6Word60$fSafeCastWord6Word8$fSafeCastWord6Int$fSafeCastWord4Word8$fSafeCastWord4Word64$fSafeCastWord4Int$fSafeCastWord2Word64$fSafeCastWord2Word8$fSafeCastWord2Word4$fSafeCastWord2Int $fEqWord2 $fOrdWord2 $fShowWord2 $fEqWord4 $fOrdWord4 $fShowWord4 $fEqWord6 $fOrdWord6 $fShowWord6 $fEqWord12 $fOrdWord12 $fShowWord12 $fEqWord24 $fOrdWord24 $fShowWord24 $fEnumWord60 $fEqWord60 $fOrdWord60 $fShowWord60alphabetisLetter decodeLetter decodeLetter4decodedecode60decode60base32decode64decode64base32encode encodeLetter encodeLetter4encode60 encode60shortencode64base32shortencode64 UuidFields uuidVariety uuidValue uuidVariant uuidVersion uuidOriginUUIDZerosplitbuildbuildXbuildYmkNameliftName mkScopedNamegetNamezero succValue encodeBase32 decodeBase32 $fShowUUID $fDataUUID$fEqUUID $fGenericUUID$fHashableUUID $fOrdUUID$fEqUuidFields$fShowUuidFields OpPatternRegularDeleteUndeleteCreateAck AnnotationAnnotationDerived ObjectPart$sel:partObject:ObjectPart$sel:partLocation:ObjectPart$sel:partFrame:ObjectPartObject$sel:id:Object$sel:frame:Object StateFrame StateChunk$sel:stateType:StateChunk$sel:stateVersion:StateChunk$sel:stateBody:StateChunkOpTermTClosedTReducedTHeaderTQuery WireFrame WireChunkClosedValueQueryWireReducedChunk$sel:wrcHeader:WireReducedChunk$sel:wrcBody:WireReducedChunkOp $sel:opId:Op $sel:refId:Op$sel:payload:OpClosedOp$sel:reducerId:ClosedOp$sel:objectId:ClosedOp$sel:op:ClosedOpAtomAFloatAIntegerAStringAUuid UndeletePDeletePAckPRegularPCreatePAnnotationDerivedP AnnotationP opPattern$fShowClosedOp $fDataAtom$fEqAtom $fGenericAtom$fHashableAtom $fShowAtom$fDataOp$fEqOp $fGenericOp $fHashableOp$fShowOp$fDataClosedOp $fEqClosedOp$fGenericClosedOp$fDataWireReducedChunk$fEqWireReducedChunk$fGenericWireReducedChunk$fShowWireReducedChunk$fDataWireChunk $fEqWireChunk$fGenericWireChunk$fShowWireChunk $fEqOpTerm $fShowOpTerm$fEqStateChunk$fShowStateChunk $fEqObject $fShowObject serialize serializeAtomserializeStringparse parseAtom parseString ReplicaClockgetPid getEventsadvance EpochEvent CalendarEventEvent ReplicaIdNaming TrieForked CryptoForked RecordForkedApplicationSpecific LocalTime TCalendarTLogicalTEpochTUnknown EpochTime CalendarTimemonthsdayshoursminutessecondsnanosecHundredsfromCalendarEventfromEpochEvent toEpochEvent advanceToUuidgetEvent getEventUuid getEventUuids encodeEvent decodeEventmkCalendarDatemkCalendarDateTimemkCalendarDateTimeNanoapplicationSpecific$fHashableNaming$fOrdCalendarEvent$fOrdEpochEvent$fReplicaClockStateT$fReplicaClockExceptT$fEqCalendarTime$fOrdCalendarTime$fShowCalendarTime $fEqLocalTime$fShowLocalTime$fBoundedNaming $fEnumNaming $fEqNaming $fShowNaming $fEqReplicaId$fShowReplicaId$fGenericReplicaId$fHashableReplicaId $fEqEvent $fShowEvent$fEqCalendarEvent$fShowCalendarEvent$fEqEpochEvent$fShowEpochEvent ReplicaSim ReplicaSimT NetworkSim NetworkSimT runNetworkSimrunNetworkSimT runReplicaSimrunReplicaSimT$fMonadTransNetworkSimT$fReplicaClockReplicaSimT$fMonadTransReplicaSimT$fApplicativeNetworkSimT$fFunctorNetworkSimT$fMonadNetworkSimT$fMonadErrorNetworkSimT$fApplicativeReplicaSimT$fFunctorReplicaSimT$fMonadReplicaSimT$fMonadErrorReplicaSimT EpochClock runEpochClockrunEpochClockFromCurrentTimegetCurrentEpochTimelocalEpochTimeFromUnix$fReplicaClockEpochClock$fApplicativeEpochClock$fFunctorEpochClock$fMonadEpochClock$fMonadIOEpochClock serializeUuidserializeUuidKeyserializeUuidAtomserializeWireFrameserializeWireFramesserializeRawOpserializeStateFrameserializeObjectparseWireFrameparseWireFramesparseOp parseUuid parseUuidKey parseUuidAtomparseStateFrame parseObject?: Data.Maybe fromMaybeGHC.Base++GHC.Listfilterzip Data.Tuplefstsnd otherwisemap$ghc-primGHC.PrimcoerceGHC.Real fromIntegral realToFrac Control.MonadguardGHC.EnumBoundedminBoundmaxBoundEnumfromEnumtoEnumsuccpred GHC.ClassesEq==/=IntegralmodMonad>>= Data.DataDataFunctorfmap<$GHC.NumNum+*-negateOrd>=minmax><compare<=roundGHC.ShowShowData.Typeable.InternalTypeableControl.Monad.Fail MonadFailfail Applicative<*>pure*><*liftA2 Data.FoldableFoldabletoListfoldrlengthfoldMapnullfoldl'foldData.Traversabletraverse sequenceAsequence GHC.GenericsGeneric Semigroup<>sconcatMonoidmempty GHC.TypesBoolFalseTrueCharDoubleIntGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeInteger GHC.MaybeMaybeNothingJustOrderingLTEQGTIOWord Data.EitherEitherLeftRight Coerciblebytestring-0.10.8.2Data.ByteString.Internal ByteString Data.Functor<$>'hashable-1.2.7.0-2SI038axTEd7AEZJ275kpiData.Hashable.ClassHashablehash text-1.2.3.1Data.Text.InternalText time-1.8.0.2 Data.Time.Clock.Internal.UTCTimeUTCTime4unordered-containers-0.2.10.0-LgoTL3wbBEY5bZIDJiyxW4Data.HashMap.BaseHashMapcontainers-0.6.0.1Data.Map.InternalMapString Alternativemany<|>someData.BifunctorbimapData.List.NonEmptynonEmptyControl.Monad.IO.ClassMonadIOliftIOunless<=<>=>filterMforControl.ApplicativeoptionalData.Functor.IdentityIdentity Data.IORefatomicModifyIORef' GHC.IORef writeIORef readIORefnewIORefIORefGHC.IOevaluatethrowIOcatchFilePathGHC.Exception.Type Exception minimumByorandasumfor_ traverse_ Data.MonoidLast Data.OldListunwordsunlinessortOnsortBy genericLength partition intercalate isSuffixOf isPrefixOfeitherData.Ord comparingDown GHC.UnicodetoUppertoLower Data.Functiononvoid$>^^^%GHC.CharchrlookupspansplitAttake takeWhile replicaterepeat catMaybes listToMaybe maybeToListmaybeuncurrysubtractflip.constordwhen=<<NonEmpty:|GHC.Err undefinederrorGHC.Stack.Types HasCallStack&&||nottransformers-0.5.5.0Control.Monad.Trans.Class MonadTranslift mtl-2.2.2Control.Monad.Writer.Class MonadWritertellControl.Monad.State.Classgetsmodify' MonadStategetputstateControl.Monad.Reader.ClassaskreaderControl.Monad.Error.Class liftEither MonadError throwError catchErrorControl.Monad.Trans.ExceptExceptT runExceptTControl.Monad.Trans.ReaderReaderT runReaderT Control.Monad.Trans.State.StrictStateT runStateTStaterunState evalState evalStateT execStateT!Control.Monad.Trans.Writer.StrictWriterT runWriterTfmapLfoldr1identitylastDef maximumDefmaxOnminOnshowwhenJustzzEncode zzDecode64takeL*attoparsec-0.13.2.2-7cR7so94jW75HlSyRFdGuR#Data.Attoparsec.ByteString.Internal endOfInputExData.Attoparsec.Internal endOfInput isSuccessfulData.Attoparsec.ByteString.Lazy eitherResult maybeResult parseTestResultFailDonematch parseOnly peekWord8' peekWord8notWord8word8anyWord8 notInClassinClass takeWhile1 runScannerscantakeLazyByteStringtakeByteStringtakeTill skipWhilestring satisfyWithskipsatisfyParserData.Attoparsec.CombinatorfeedeitherPcount skipMany1skipMany manyTill'manyTillsepBy1'sepBy1sepBy'sepBymany1'many1many'optionchoicetryatEndcompareResults parseOnlyL withInputSizelabel??char<+>serializeChunkserializeClosedOpserializeReducedOp encodeDescserializeWithDescserializeFloatserializeReducedChunk parseDescextendedLength parseFrame parseChunksleastSignificant31 parseChunk assertSizeparseReducedOpsparseDescAndClosedOpparseDescAndReducedOp parseClosedOp parseOpenOp parseOpKeyuuid parsePayloadatomfloatintegerepochTimeFromUnixserializeClosedOpZipserializeReducedOpZipserializeAtomZipserializePayloadpChunkwireStateChunkheader findObjects