Îõ³h&TÜNÍ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred(;äïðñ štext-compression.Abstract BWTCounter and associated state type.text-compressionÂAbstract data type representing a BWTSeq in the (strict) ST monad.text-compression!Abstract BWTSeq type utilizing a .text-compression!The BWTMatrix data type. Uses a    internally.text-compressionThe BWT data type. Uses  internally.text-compression!The SuffixArray data type. Uses  internally.text-compressionÇBasic suffix data type. Used to describe the core data inside of the  data type. text-compressionïComputes the Burrows-Wheeler Transform (BWT) using the suffix array and the original string (represented as a  for performance).text-compressionComputes the corresponding  of a given string. Please see  *https://en.wikipedia.org/wiki/Suffix_array suffix array for more information. text-compressionHierarchical sorting scheme that compares fst first then snd. Necessary for the setting up the BWT in order to correctly invert it using the  +https://www.youtube.com/watch?v=QwSsppKrCj4Magic algorithm.text-compression1State function to push BWTString data into stack.text-compression0State function to create empty STBWTString type.text-compression$State function to update BWTCounter.text-compression1State function to create empty STBWTCounter type.text-compressionMagic Inverse BWT function.text-compressioníSimple yet efficient implementation of converting a given string into a BWT Matrix (the BWTMatrix type is a  (‘ a).   (c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred(;äðñ8%text-compression*A newtype to ensure you only uncompress a  created from ) , since [’] -> “ is partial.'text-compressionÓTakes a String and returns the Burrows-Wheeler Transform (BWT). Implemented via a .(text-compression!Helper function for converting a ” to a  ’.)text-compressionHelper function for converting “ to a %.*text-compression"Takes a BWT data type (please see Data.BWT.Internal-) and inverts it back to the original string.ËThis function utilizes the state monad (strict) in order to implement the  +https://www.youtube.com/watch?v=QwSsppKrCj4Magicà Inverse BWT algorithm by backtracking indices starting with the (Nothing ,_) entry.+text-compression!Helper function for converting a  of ’s to a ”.,text-compression!Helper function for converting a  ”s to a ”.-text-compressionHelper function for converting % to a “ %&'()*+,- '(%&)*+,-(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred(;äïðñâ/3text-compression Abstract 3 and associated state type.4text-compression"Abstract data type representing a 5 in the (strict) ST monad.5text-compression Abstract 5 type utilizing a .6text-compression Abstract 6 and associated state type.7text-compression"Abstract data type representing a 8 in the (strict) ST monad.8text-compression Abstract 8 type utilizing a .9text-compression Abstract 9 and associated state type.:text-compression Abstract : and associated state type.;text-compression"Abstract data type representing a < in the (strict) ST monad.<text-compression Abstract < type utilizing a .=text-compression Abstract = type utilizing a >text-compression Abstract > and associated state type.?text-compression Abstract ? and associated state type.@text-compression"Abstract data type representing a A in the (strict) ST monad.Atext-compression Abstract A type utilizing a .Btext-compression Abstract B type utilizing a Ctext-compression Basic MTF (“ ) data type.Etext-compression Basic MTF (” ) data type.Gtext-compression6Useful to acquire the unique elements that make up a ". Credit to @DavidFletcher. See  Ñhttps://stackoverflow.com/questions/45757839/removing-duplicate-elements-in-a-seqthis stackoverflow post.Htext-compression#Abstract data type to initialize a @ using the initial list.Itext-compressionState function to update A with each step of the MTF.Jtext-compressionState function to create empty @ type.Ktext-compression!State function to load list into ?.Ltext-compressionState function to create empty ? type.Mtext-compressionState function to update >.Ntext-compressionState function to create empty > type.Otext-compressionStrict state monad function.Ptext-compression#Abstract data type to initialize a ; using the initial list.Qtext-compressionState function to update ; with each step of the MTF.Rtext-compressionState function to create empty ; type.Stext-compression!State function to load list into :.Ttext-compressionState function to create empty : type.Utext-compressionState function to update 9.Vtext-compressionState function to create empty 9 type.Wtext-compressionStrict state monad function.Xtext-compressionState function to update 7# with each step of the inverse MTF.Ytext-compressionState function to create empty 7 type.Ztext-compression!State function to load list into 6.[text-compressionState function to update 6.\text-compressionState function to create empty 6 type.]text-compressionStrict state monad function.^text-compressionState function to update 4# with each step of the inverse MTF._text-compressionState function to create empty 4 type.`text-compression!State function to load list into 3.atext-compressionState function to update 3.btext-compressionState function to create empty 3 type.ctext-compressionStrict state monad function.13456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc1EFCDGBA@HIJ?KL>MNO=<;PQR:ST9UVW87XY6Z[\]54^_3`abc(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred"(äðñ'Šntext-compression!Helper function for converting a ” to a E via a  first.otext-compression!Helper function for converting a ” to a C via a  first.ptext-compression!Helper function for converting a “ to a E via a  first.qtext-compression!Helper function for converting a “ to a C via a  first.rtext-compressionTake a  of ’-s and generate the Move-to-front transform (E).stext-compressionTake a  of ’-s and generate the Move-to-front transform (E).ttext-compressionTake a  of ’-s and generate the Move-to-front transform (E).utext-compressionTake a  of ’-s and generate the Move-to-front transform (C).vtext-compressionTakes a “* and returns the Move-to-front transform (E).wtext-compressionTakes a  of ”+s and returns the Move-to-front transform (E).xtext-compressionTakes a “* and returns the Move-to-front transform (C).ytext-compressionTakes a ”* and returns the Move-to-front transform (C).ztext-compression!Helper function for converting a ed E back to the original ”.{text-compression!Helper function for converting a ed C back to the original ”.|text-compression!Helper function for converting a ed E back to the original “.}text-compression!Helper function for converting a ed C back to the original “.~text-compressionTakes a C and returns the  of “s.text-compressionTakes a C and returns the  of ”s.€text-compressionTakes a E and returns the  of “s.text-compressionTake a E and returns the  of ”s.‚text-compressionTakes a E and returns the original  of “s.ƒtext-compressionTakes a E and returns the original  of ”s.„text-compressionTakes a C and returns the original  of “s.…text-compressionTakes a C and returns the original  of ”s.nopqrstuvwxyz{|}~€‚ƒ„…nopqrstuvwxyz{|}~€‚ƒ„…(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred(;äïðñ1a †text-compression Abstract † type utilizing a .‡text-compression Abstract ‡ type utilizing a .ˆtext-compression Abstract ˆ and associated state type.‰text-compression Abstract ‰ and associated state type.Štext-compression"Abstract data type representing a ‹ in the (strict) ST monad.‹text-compression Abstract ‹ type utilizing a À. (c,(indexofinputcurrentelement,Occ(c,k),inputcurrentelement))Œtext-compression Abstract Œ type utilizing a .text-compression Abstract  and associated state type.Žtext-compression Abstract Ž and associated state type.text-compression"Abstract data type representing a  in the (strict) ST monad.text-compression Abstract  type utilizing a À. (c,(indexofinputcurrentelement,Occ(c,k),inputcurrentelement))‘text-compression Abstract ‘ type utilizing a .’text-compressionBasic FMIndex (“ ) data type.”text-compressionBasic FMIndex (” ) data type.–text-compressionState function to update  with each step of the FMIndex.—text-compressionState function to update  with each step of the FMIndex.˜text-compressionState function to create empty  type.™text-compression!State function to load list into Ž.štext-compressionState function to create empty Ž type.›text-compressionState function to update .œtext-compressionState function to create empty  type.text-compressionStrict state monad function.žtext-compressionState function to update ‹ with each step of the FMIndex.Ÿtext-compressionState function to update ‹ with each step of the FMIndex. text-compressionState function to create empty Š type.¡text-compression!State function to load list into ‰.¢text-compressionState function to create empty ‰ type.£text-compressionState function to update ˆ.¤text-compressionState function to create empty ˆ type.¥text-compressionStrict state monad function.¦text-compression!Simple Inverse FMIndex function. §text-compression Simple Inverse FMIndex function."†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§"”•’“‘–—˜Ž™š›œŒ‹ŠžŸ ‰¡¢ˆ£¤¥‡¦†§(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred(;äðñ:á²text-compression!Helper function for converting a ” to a ” via a  first.³text-compression!Helper function for converting a ” to a ’ via a  first.´text-compression!Helper function for converting a “ to a ” via a  first.µtext-compression!Helper function for converting a “ to a ’ via a  first.¶text-compressionTake a  of ’s and generate the FM-index (”).·text-compressionTake a  of ’s and generate the FM-index (”).¸text-compressionTake a  of ’s and generate the FM-index (”).¹text-compressionTake a  of ’s and generate the FM-index (’).ºtext-compressionTakes a “ and returns the FM-index (”).»text-compressionTakes a  of ”s and returns the FM-index (”).¼text-compressionTakes a “ and returns the FM-index (’).½text-compressionTakes a ” and returns the FM-index (’).¾text-compression!Helper function for converting a ed ” back to the original ”.¿text-compression!Helper function for converting a ed ’ back to the original ”.Àtext-compression!Helper function for converting a ed ” back to the original “.Átext-compression!Helper function for converting a ed ’ back to the original “.Âtext-compressionTakes a ’ and returns the  of “s.Ãtext-compressionTakes a ’ and returns the  of ”s.Ätext-compressionTakes a ” and returns the  of “s.Åtext-compressionTake a ” and returns the  of ”s.Ætext-compressionTakes a ” and returns the original  of “s.Çtext-compressionTakes a ” and returns the original  of ”s.Ètext-compressionTakes a ’ and returns the original  of “s.Étext-compressionTakes a ’ and returns the original  of ”s.²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈɲ³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉ(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred(;äïðñD“"Êtext-compression"Abstract data type representing a Ë in the (strict) ST monad.Ëtext-compression Abstract Ë type utilizing a .Ìtext-compression"Abstract data type representing a Í in the (strict) ST monad.Ítext-compression Abstract Í type utilizing a .Îtext-compression Abstract Î and associated state type.Ïtext-compression Abstract Ï state type.Ðtext-compression"Abstract data type representing a Ñ in the (strict) ST monad.Ñtext-compression Abstract Ñ type utilizing a .Òtext-compression Abstract Ò state type.Ótext-compression Abstract Ó and associated state type.Ôtext-compression"Abstract data type representing a Õ in the (strict) ST monad.Õtext-compression Abstract Õ type utilizing a .Ötext-compression Basic RLE (“ ) data type.Øtext-compression Basic RLE (” ) data type.Útext-compressionState function to push Õ data into stack.Ûtext-compressionState function to create empty Ô type.Ütext-compressionState function to update Ó.Ýtext-compressionState function to create empty Ó type.Þtext-compressionState function to update Ò.ßtext-compressionState function to create empty Ò type.àtext-compressionStrict state monad function.átext-compressionState function to push Ñ data into stack.âtext-compressionState function to create empty Ð type.ãtext-compressionState function to update Ï.ätext-compressionState function to create empty Ï type.åtext-compressionState function to update Î.ætext-compressionState function to create empty Î type.çtext-compressionStrict state monad function.ètext-compressionState function to push Í data into stack.étext-compressionState function to create empty Ì type.êtext-compressionStrict state monad function.ëtext-compressionState function to push Ê data into stack.ìtext-compressionState function to create empty Ê type.ítext-compressionStrict state monad function.$ÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìí$ØÙÖ×ÕÔÚÛÓÜÝÒÞßàÑÐáâÏãäÎåæçÍÌèéêËÊëìí(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred"(äðñNiøtext-compression!Helper function for converting a ” to a Ø via a  first.ùtext-compression!Helper function for converting a ” to a Ö via a  first.útext-compression!Helper function for converting a “ to a Ø via a  first.ûtext-compression!Helper function for converting a “ to a Ö via a  first.ütext-compressionTake a  of ’)s and generate the Run-length encoding (Ø).ýtext-compressionTake a  of ’)s and generate the Run-length encoding (Ø).þtext-compressionTake a  of ’)s and generate the Run-length encoding (Ø).ÿtext-compressionTake a  of ’)s and generate the Run-length encoding (Ö).€text-compressionTakes a “& and returns the Run-length encoding (Ø).text-compressionTakes a  of ”'s and returns the Run-length encoding (Ø).‚text-compressionTakes a “+ and returns the Run-length encoding (RLE).ƒtext-compressionTakes a ”+ and returns the Run-length encoding (RLE).„text-compression!Helper function for converting a ed Ø back to the original ”.…text-compression!Helper function for converting a ed Ö back to the original ”.†text-compression!Helper function for converting a ed Ø back to the original “.‡text-compression!Helper function for converting a ed Ö back to the original “.ˆtext-compressionTakes a Ö and returns the  of “s.‰text-compressionTakes a Ö and returns the  of ”s.Štext-compressionTakes a Ø and returns the  of “s.‹text-compressionTake a Ø and returns the  of ”s.Œtext-compressionTakes a Ø and returns the original  of “s.text-compressionTakes a Ø and returns the original  of ”s.Žtext-compressionTakes a Ö and returns the original  of “s.text-compressionTakes a Ö and returns the original  of ”s.øùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽøùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ•    !"#$%&'()*+,--./0123456789:;<=>?@ABCDEFGHIJJKKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–——˜˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÙÚÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–”—˜™š›œžŸ0text-compression-0.1.0.14-9ORM6NM9jqVJfQeS6LjkQQData.BWT.InternalData.BWTData.MTF.InternalData.MTFData.FMIndex.Internal Data.FMIndexData.RLE.InternalData.RLEDMAArray STBWTCounterSTBWTSeqBWTSeq BWTMatrixBWT SuffixArraySuffix suffixindexsuffixstartpossuffixsaToBWTcreateSuffixArraysortTB pushSTBWTSeq emptySTBWTSequpdateSTBWTCounteremptySTBWTCountermagicInverseBWTcreateBWTMatrix $fEqBWTMatrix$fOrdBWTMatrix$fShowBWTMatrix$fReadBWTMatrix$fGenericBWTMatrix$fEqBWT$fOrdBWT $fShowBWT $fReadBWT $fGenericBWT $fEqSuffix $fOrdSuffix $fShowSuffix $fReadSuffix$fGenericSuffixTextBWTtoBWTbytestringToBWT textToBWTfromBWTbytestringFromWord8BWTbytestringFromByteStringBWT textFromBWT $fEqTextBWT $fOrdTextBWT $fShowTextBWT $fReadTextBWT$fGenericTextBWT FSTMTFILT FSTMTFSeqTFMTFSeqT FSTMTFILB FSTMTFSeqBFMTFSeqB STMTFCounterTSTMTFILT STMTFLSSeqT MTFLSSeqT PTMTFSeqT STMTFCounterBSTMTFILB STMTFLSSeqB MTFLSSeqB PBMTFSeqBMTFTMTFBnubSeq'initializeSTMTFLSSeqBupdateSTMTFLSSeqBemptySTMTFLSSeqB loadSTMTFILB emptySTMTFILBupdateSTMTFCounterBemptySTMTFCounterB seqToMTFBinitializeSTMTFLSSeqTupdateSTMTFLSSeqTemptySTMTFLSSeqT loadSTMTFILT emptySTMTFILTupdateSTMTFCounterTemptySTMTFCounterT seqToMTFTupdateFSTMTFSeqBemptyFSTMTFSeqB loadFSTMTFILBupdateFSTMTFILBemptyFSTMTFILB seqFromMTFBupdateFSTMTFSeqTemptyFSTMTFSeqT loadFSTMTFILTupdateFSTMTFILTemptyFSTMTFILT seqFromMTFT$fEqMTFT $fOrdMTFT $fShowMTFT $fReadMTFT $fGenericMTFT$fEqMTFB $fOrdMTFB $fShowMTFB $fReadMTFB $fGenericMTFBbytestringToBWTToMTFBbytestringToBWTToMTFTtextToBWTToMTFBtextToBWTToMTFT textBWTToMTFBbytestringBWTToMTFB textBWTToMTFTbytestringBWTToMTFT textToMTFBbytestringToMTFB textToMTFTbytestringToMTFTbytestringFromBWTFromMTFBbytestringFromBWTFromMTFTtextFromBWTFromMTFBtextFromBWTFromMTFTtextBWTFromMTFTbytestringBWTFromMTFTtextBWTFromMTFBbytestringBWTFromMTFB textFromMTFBbytestringFromMTFB textFromMTFTbytestringFromMTFT FFMIndexSeqT FFMIndexSeqBSTFMIndexCounterT STFMIndexILT STFMIndexSeqT FMIndexSeqT PTFMIndexSeqTSTFMIndexCounterB STFMIndexILB STFMIndexSeqB FMIndexSeqB PBFMIndexSeqBFMIndexTFMIndexBupdateSTFMIndexSeqABupdateSTFMIndexSeqBBemptySTFMIndexSeqBloadSTFMIndexILBemptySTFMIndexILBupdateSTFMIndexCounterBemptySTFMIndexCounterB seqToFMIndexBupdateSTFMIndexSeqATupdateSTFMIndexSeqBTemptySTFMIndexSeqTloadSTFMIndexILTemptySTFMIndexILTupdateSTFMIndexCounterTemptySTFMIndexCounterT seqToFMIndexTseqFromFMIndexBseqFromFMIndexT $fEqFMIndexT $fOrdFMIndexT$fShowFMIndexT$fReadFMIndexT$fGenericFMIndexT $fEqFMIndexB $fOrdFMIndexB$fShowFMIndexB$fReadFMIndexB$fGenericFMIndexBbytestringToBWTToFMIndexBbytestringToBWTToFMIndexTtextToBWTToFMIndexBtextToBWTToFMIndexTtextBWTToFMIndexBbytestringBWTToFMIndexBtextBWTToFMIndexTbytestringBWTToFMIndexTtextToFMIndexBbytestringToFMIndexBtextToFMIndexTbytestringToFMIndexTbytestringFromBWTFromFMIndexBbytestringFromBWTFromFMIndexTtextFromBWTFromFMIndexBtextFromBWTFromFMIndexTtextBWTFromFMIndexTbytestringBWTFromFMIndexTtextBWTFromFMIndexBbytestringBWTFromFMIndexBtextFromFMIndexBbytestringFromFMIndexBtextFromFMIndexTbytestringFromFMIndexT FSTRLESeqTFRLESeqT FSTRLESeqBFRLESeqB STRLECounterT STRLETempT STRLESeqTRLESeqT STRLECounterB STRLETempB STRLESeqBRLESeqBRLETRLEB pushSTRLESeqBemptySTRLESeqBupdateSTRLETempBemptySTRLETempBupdateSTRLECounterBemptySTRLECounterB seqToRLEB pushSTRLESeqTemptySTRLESeqTupdateSTRLETempTemptySTRLETempTupdateSTRLECounterTemptySTRLECounterT seqToRLETpushFSTRLESeqBemptyFSTRLESeqB seqFromRLEBpushFSTRLESeqTemptyFSTRLESeqT seqFromRLET$fEqRLET $fOrdRLET $fShowRLET $fReadRLET $fGenericRLET$fEqRLEB $fOrdRLEB $fShowRLEB $fReadRLEB $fGenericRLEBbytestringToBWTToRLEBbytestringToBWTToRLETtextToBWTToRLEBtextToBWTToRLET textBWTToRLEBbytestringBWTToRLEB textBWTToRLETbytestringBWTToRLET textToRLEBbytestringToRLEB textToRLETbytestringToRLETbytestringFromBWTFromRLEBbytestringFromBWTFromRLETtextFromBWTFromRLEBtextFromBWTFromRLETtextBWTFromRLETbytestringBWTFromRLETtextBWTFromRLEBbytestringBWTFromRLEB textFromRLEBbytestringFromRLEB textFromRLETbytestringFromRLETcontainers-0.6.5.1Data.Sequence.InternalSeqbase GHC.MaybeMaybeGHC.WordWord8 text-1.2.5.0Data.Text.InternalTextbytestring-0.11.3.1Data.ByteString.Internal ByteString