7     portable experimentalekmett@gmail.com Safe-InferedA  which supports efficient * operations over run-length encoded data. "A single run with a strict length &  !"#$%&'()*+,-./0123456   $  !"#$%&'()*+,-./0123456non-portable (type families) experimentalekmett@gmail.com Safe-Infered An LZ78 compressed . O(n) Construct an LZ78-compressed  using a HashMap internally.  O(n log n) Contruct an LZ78-compressed  using a Map internally. O(n^2) Contruct an LZ78-compressed 7 using a list internally, requires an instance of Eq,  less efficient than encode. A type-constrained 7 operation O(n). Recompress with 8  O(n log n). Recompress with 9 O(n^2). Recompress with : exposes internal structure * ;<=>?@ABCDEFGHIJKLMNOPQRSTU    &   ;<=>?@ABCDEFGHIJKLMNOPQRSTUnon-portable (type families) experimentalekmett@gmail.com Safe-Infered  V          !"#$%&'()*+,-./0123456789:;<=;<>?@ABCDEFGHIJKLMNOPQRSTUVWXYZcompressed-0.2!Data.Compressed.RunLengthEncodingData.Compressed.Internal.LZ78Data.Compressed.LZ78RLEgetRLERun runLengthtoRunsfromRunsencodedecoderecodeEntryLZ78NilConsToken encodeOrdencodeEq recodeOrdrecodeEqentries reducers-0.2Data.Generator Generator mapReduce$fAdjustableRLE $fLookupRLE$fZipRLE$fEqRLE $fHashableRLE$fGeneratorRLE $fFoldableRLE $fMonoidRLE $fReduceraRLE $fMonadRLE $fBindRLE$fApplicativeRLE $fApplyRLE $fPointedRLE $fFunctorRLE$fSemigroupRLE$fMeasuredCountRun$fFoldable1Run $fFoldableRun $fMonadRun $fBindRun$fApplicativeRun $fApplyRun $fPointedRun $fFunctorRun $fComonadRun $fExtendRun$fOrdRunreducehashable-1.1.2.3 Data.HashableHashableghc-prim GHC.ClassesOrdEq $fZipLZ78$fFoldableWithKeyLZ78$fIndexableLZ78 $fLookupLZ78$fAdjustableLZ78 $fMonadLZ78$fApplicativeLZ78$fHashableEntry $fOrdEntry $fEqEntry$fComonadEntry $fExtendEntry$fFunctorEntry$fFoldableLZ78 $fPointedLZ78 $fFunctorLZ78$fGeneratorLZ78 $fReadLZ78 $fOrdLZ78$fEqLZ78 $fShowLZ78$fHashableToken$fComonadToken $fExtendToken$fTraversableToken$fFoldableToken$fFunctorToken