h&!      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred(;ytext-compression.Abstract BWTCounter and associated state type.text-compressionAbstract data type representing a BWTSeq in the (strict) ST monad.text-compression*Abstract BWTSeq type utilizing a sequence.text-compression9The BWTMatrix data type. Uses a massiv array internally.text-compression-The BWT data type. Uses sequence internally.text-compression5The SuffixArray data type. Uses sequence internally.text-compressionBasic suffix data type. Used to describe the core data inside of the  data type. text-compressionComputes the Burrows-Wheeler Transform (BWT) using the suffix array and the original string (represented as a sequence 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-compressionSimple yet efficient implementation of converting a given string into a BWT Matrix (the BWTMatrix type is a massiv array).    (c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred(; text-compressionA newtype to ensure you only uncompress a BWT created from textToBWT, since [Word8] -> Text is partial.text-compressionTakes a String and returns the Burrows-Wheeler Transform (BWT). Implemented via a .text-compression!Helper function for converting a m to a  n.text-compressionHelper function for converting o 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 ns to a m. text-compression!Helper function for converting a  ms to a m.!text-compressionHelper function for converting  to a o  !  !(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred(;'"'text-compression"Abstract data type representing a ( in the (strict) ST monad.(text-compression Abstract ( type utilizing a sequence.)text-compression"Abstract data type representing a * in the (strict) ST monad.*text-compression Abstract * type utilizing a sequence.+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 sequence./text-compression Abstract / state type.0text-compression Abstract 0 and associated state type.1text-compression"Abstract data type representing a 2 in the (strict) ST monad.2text-compression Abstract 2 type utilizing a sequence.3text-compression Basic RLE (o ) data type.5text-compression Basic RLE (m ) data type.7text-compressionState function to push 2 data into stack.8text-compressionState function to create empty 1 type.9text-compressionState function to update 0.:text-compressionState function to create empty 0 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 ,.Atext-compressionState function to create empty , type.Btext-compressionState function to update +.Ctext-compressionState function to create empty + type.Dtext-compressionStrict state monad function.Etext-compressionState function to push * data into stack.Ftext-compressionState function to create empty ) type.Gtext-compressionStrict state monad function.Htext-compressionState function to push ' data into stack.Itext-compressionState function to create empty ' type.Jtext-compressionStrict state monad function.$'()*+,-./0123456789:;<=>?@ABCDEFGHIJ$5634217809:/;<=.->?,@A+BCD*)EFG('HIJ(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred"(jUtext-compression!Helper function for converting a m to a 5 via a  first.Vtext-compression!Helper function for converting a m to a 3 via a  first.Wtext-compression!Helper function for converting a o to a 5 via a  first.Xtext-compression!Helper function for converting a o to a 3 via a  first.Ytext-compressionTake a  of n)s and generate the Run-length encoding (5).Ztext-compressionTake a  of n)s and generate the Run-length encoding (5).[text-compressionTake a  of n)s and generate the Run-length encoding (5).\text-compressionTake a  of n)s and generate the Run-length encoding (3).]text-compressionTakes a o& and returns the Run-length encoding (5).^text-compressionTakes a p of m's and returns the Run-length encoding (5)._text-compressionTakes a o+ and returns the Run-length encoding (RLE).`text-compressionTakes a m+ and returns the Run-length encoding (RLE).atext-compression!Helper function for converting a ed 5 back to the original m.btext-compression!Helper function for converting a ed 3 back to the original m.ctext-compression!Helper function for converting a ed 5 back to the original o.dtext-compression!Helper function for converting a ed 3 back to the original o.etext-compressionTakes a 3 and returns the  of os.ftext-compressionTakes a 3 and returns the  of ms.gtext-compressionTakes a 5 and returns the  of os.htext-compressionTake a 5 and returns the  of ms.itext-compressionTakes a 5 and returns the original p of os.jtext-compressionTakes a 5 and returns the original p of ms.ktext-compressionTakes a 3 and returns the original p of os.ltext-compressionTakes a 3 and returns the original p of ms.UVWXYZ[\]^_`abcdefghijklUVWXYZ[\]^_`abcdefghijkl       !"#$%&'()*+,-./012345667789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy/text-compression-0.1.0.7-6viOIeHntJB6lNWcRTyCj3Data.BWT.InternalData.BWTData.RLE.InternalData.RLE STBWTCounterSTBWTSeqBWTSeq BWTMatrixBWT SuffixArraySuffix suffixindexsuffixstartpossuffixsaToBWTcreateSuffixArraysortTB pushSTBWTSeq emptySTBWTSequpdateSTBWTCounteremptySTBWTCountermagicInverseBWTcreateBWTMatrix $fShowSuffix $fReadSuffix $fEqSuffix $fOrdSuffix$fGenericSuffixTextBWTtoBWTbytestringToBWT textToBWTfromBWTbytestringFromWord8BWTbytestringFromByteStringBWT textFromBWT $fEqTextBWT $fOrdTextBWT $fShowTextBWT $fReadTextBWT$fGenericTextBWT 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 textFromRLETbytestringFromRLETbytestring-0.11.3.1Data.ByteString.Internal ByteStringbaseGHC.WordWord8 text-1.2.5.0Data.Text.InternalTextcontainers-0.6.5.1Data.Sequence.InternalSeq