!2"8      !"#$%&'()*+,-./01234567None_m8 ron-storageAn infix form of 9 with arguments flipped.:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~9      !"880None$>Xkm ron-storageIResult of DB reading, loaded document with information about its versions ron-storage Merged value. ron-storagerA thing (e.g. document) was fixed during loading. It it was fixed during loading it must be saved to the storage. ron-storageStorage backend interface  ron-storage Must return [] for non-existent collection  ron-storage Must return [] for non-existent document  ron-storage0Must create collection and document if not exist ron-storage[A type that intended to be put in a separate collection must define a Collection instance. ron-storageCalled when RON parser fails. ron-storageCollection (directory name) ron-storageODocument identifier (directory name), should be a RON-Base32-encoded RON-UUID. ron-storage'Document version identifier (file name) ron-storage Try decode UUID from a file name ron-storage"Load document version as an object ron-storageaCreate new version of an object/document. If the document doesn't exist yet, it will be created. ron-storage+Bool = is document id a valid UUID encoding ron-storage, if document exists already;  otherwise.      None$EPXm+  ron-storageLoad all versions of a document# ron-storageValidation-like version of .! ron-storage7Load document, apply changes and put it back to storage" ron-storage.Create document assuming it doesn't exist yet.  !"# "# !None $/=?@AMSXkm!$ ron-storage+Storage handle (uses the Handle pattern ).% ron-storageEnvironment is the dataDir& ron-storageRun a % action' ron-storageCreate new storage handle !"#$%&'($'%&(None$/MX_km"|0101$       !!"#$%&'()*+,-./0123456789:;<=;>?;@A;@B;CD;CE;>F;>G;>HIJK;LM;LN;OP;QR;QS;QT;QU;QV;QW;QX;QYIZ[IZ\IZ];L^;L_;>`;>a;bc;>d;>e;>f;gh;gi;gj;gk;glIZmIZnIZoIZpIZqIZrIZsIZt;Lu;vw;xy;z{;z|;>};>~;>;>;>;>;;;;;;;;;;;;;>;>;>;>;>IIIIII;;;;;;;IIIIII;;;;;;;I;;>;>;>;>;>;;;;;O;O;O;O;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;L;L;L; ;@ ;@ ;@ ;@ ;@;@;@;@;<;<;<;<;C;g;>;>;>;>;>;>;>;>; !; ";#$IZ%IZ&IZ'()*+,-+,./01/02/34/35/36/37/38/39/:;/:</=>/=?/=@/=A+BC+BD+EF+EF+EG+HI+HJ+HK+HL+HM+HN+HO+PQ+PRSTUVWXYZ[\]^_`ab%ron-storage-0.7-GV0N2xLaMPNH5ye3vnwTxRON.Storage.Backend RON.StorageRON.Storage.FSRON.Storage.TestPreludeDocumentvalueversions isTouched IsTouched MonadStoragegetCollections getDocumentsgetDocumentVersionssaveVersionContentloadVersionContent deleteVersion changeDocId CollectioncollectionName fallbackParseCollectionNameDocId DocVersion decodeDocId readVersion createVersion $fShowDocId $fEqDocId $fOrdDocId$fShowIsTouched$fShowDocumentCollectionDocId loadDocumentmodifycreateDocument docIdFromUuidHandleStorage runStorage newHandlesubscribeForever$fMonadStorageStorage$fReplicaClockStorage$fApplicativeStorage$fFunctorStorage$fMonadStorage$fMonadErrorStorage$fMonadIOStorageTestDB runStorageSim$fMonadStorageStorageSim$fApplicativeStorageSim$fFunctorStorageSim$fMonadStorageSim$fMonadErrorStorageSim$fReplicaClockStorageSim?:base 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 Applicativepure<*>*><*liftA2 Data.FoldableFoldabletoListfoldrlengthfoldMapnullfoldl'foldData.Traversabletraverse sequenceAsequence GHC.GenericsGeneric Semigroup<>sconcatMonoidmempty GHC.TypesBoolFalseTrueCharDoubleIntGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeInteger GHC.MaybeMaybeNothingJustOrderingLTEQGTIOWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherLeftRight Coerciblebytestring-0.10.8.2Data.ByteString.Internal ByteString Data.Functor<$> text-1.2.3.1Data.Text.InternalTextcontainers-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.CharchrlookupspansplitAtdroptake takeWhile replicaterepeat catMaybes listToMaybe maybeToListmaybeuncurrysubtractflip.constordwhen=<<NonEmpty:|GHC.Err undefinederrorGHC.Stack.Types HasCallStack&&||notfilepath-1.4.2.1System.FilePath.Posixtransformers-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 runWriterTfmapLfoldr1headMayidentitylastDef maximumDefmaxOnminOnnote replicateM2 replicateM3showwhenJust!!vsconcat