h&$"!      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw(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  in the (strict) ST monad.text-compression*Abstract BWTSeq type utilizing a sequence.text-compression9The BWTMatrix data type. Uses a massiv array internally.text-compressionThe BWT data type. Uses x internally.text-compression!The SuffixArray data type. Uses y 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 y for performance). text-compressionx based implementation of the well-known tails function in the List library.text-compressionCustom sort function for ys used in the  function.text-compressionCustom sort function for y s used in the fromBWT function.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-compressionState function to push  data into stack.text-compressionState function to create empty  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(;C"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 z 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 z.)text-compression!Helper function for converting a  zs to a z.*text-compressionHelper function for converting " to a | "#$%&'()* $%"#&'()*(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred(;/$0text-compression"Abstract data type representing a 1 in the (strict) ST monad.1text-compression Abstract 1 type utilizing a sequence.2text-compression"Abstract data type representing a 3 in the (strict) ST monad.3text-compression Abstract 3 type utilizing a sequence.4text-compression Abstract 4 and associated state type.5text-compression Abstract 5 state type.6text-compression"Abstract data type representing a 7 in the (strict) ST monad.7text-compression Abstract 7 type utilizing a sequence.8text-compression Abstract 8 state type.9text-compression Abstract 9 and associated state type.:text-compression"Abstract data type representing a ; in the (strict) ST monad.;text-compression Abstract ; type utilizing a sequence.<text-compression Basic RLE (| ) data type.>text-compression Basic RLE (z ) data type.@text-compressionState function to push ; data into stack.Atext-compressionState function to create empty : type.Btext-compressionState function to update 9.Ctext-compressionState function to create empty 9 type.Dtext-compressionState function to update 8.Etext-compressionState function to create empty 8 type.Ftext-compressionStrict state monad function.Gtext-compressionState function to push 7 data into stack.Htext-compressionState function to create empty 6 type.Itext-compressionState function to update 5.Jtext-compressionState function to create empty 5 type.Ktext-compressionState function to update 4.Ltext-compressionState function to create empty 4 type.Mtext-compressionStrict state monad function.Ntext-compressiony auxilary function to pattern match on first two elements of a vector.Otext-compressionState function to push 3 data into stack.Ptext-compressionState function to create empty 2 type.Qtext-compressionStrict state monad function.Rtext-compressiony auxilary function to pattern match on first two elements of a vector.Stext-compressionState function to push 0 data into stack.Ttext-compressionState function to create empty 0 type.Utext-compressionStrict state monad function.&0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU&>?<=;:@A9BC8DEF76GH5IJ4KLMN32OPQR10STU(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred"(!v`text-compression!Helper function for converting a z to a > via a  first.atext-compression!Helper function for converting a z to a < via a  first.btext-compression!Helper function for converting a | to a > via a  first.ctext-compression!Helper function for converting a | to a < via a  first.dtext-compressionTake a  of {)s and generate the Run-length encoding (>).etext-compressionTake a  of {)s and generate the Run-length encoding (>).ftext-compressionTake a  of {)s and generate the Run-length encoding (>).gtext-compressionTake a  of {)s and generate the Run-length encoding (<).htext-compressionTakes a |& and returns the Run-length encoding (>).itext-compressionTakes a y of z's and returns the Run-length encoding (>).jtext-compressionTakes a |+ and returns the Run-length encoding (RLE).ktext-compressionTakes a z+ and returns the Run-length encoding (RLE).ltext-compression!Helper function for converting a ed > back to the original z.mtext-compression!Helper function for converting a ed < back to the original z.ntext-compression!Helper function for converting a ed > back to the original |.otext-compression!Helper function for converting a ed < back to the original |.ptext-compressionTakes a < and returns the  of |s.qtext-compressionTakes a < and returns the  of zs.rtext-compressionTakes a > and returns the  of |s.stext-compressionTake a > and returns the  of zs.ttext-compressionTakes a > and returns the original y of |s.utext-compressionTakes a > and returns the original y of zs.vtext-compressionTakes a < and returns the original y of |s.wtext-compressionTakes a < and returns the original y of zs.`abcdefghijklmnopqrstuvw`abcdefghijklmnopqrstuvw        !"#$%%&'()*+,-./0123456789:;<=>>??@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyzx{z|}~/text-compression-0.1.0.8-70lkJCzZpdjEuFzWx0Few9Data.BWT.InternalData.BWTData.RLE.InternalData.RLE STBWTCounterSTBWTVecBWTVec BWTMatrixBWT SuffixArraySuffix suffixindexsuffixstartpossuffixsaToBWTtailsV sortVecSA sortVecBWTcreateSuffixArraysortTB pushSTBWTVec emptySTBWTVecupdateSTBWTCounteremptySTBWTCountermagicInverseBWTcreateBWTMatrix$fEqBWT$fOrdBWT $fShowBWT $fReadBWT $fGenericBWT $fShowSuffix $fReadSuffix $fEqSuffix $fOrdSuffix$fGenericSuffixTextBWTtoBWTbytestringToBWT textToBWTfromBWTbytestringFromWord8BWTbytestringFromByteStringBWT textFromBWT $fEqTextBWT $fOrdTextBWT $fShowTextBWT $fReadTextBWT$fGenericTextBWT FSTRLEVecTFRLEVecT FSTRLEVecBFRLEVecB STRLECounterT STRLETempT STRLEVecTRLEVecT STRLECounterB STRLETempB STRLEVecBRLEVecBRLETRLEB pushSTRLEVecBemptySTRLEVecBupdateSTRLETempBemptySTRLETempBupdateSTRLECounterBemptySTRLECounterB vecToRLEB pushSTRLEVecTemptySTRLEVecTupdateSTRLETempTemptySTRLETempTupdateSTRLECounterTemptySTRLECounterT vecToRLETunconsb2pushFSTRLEVecBemptyFSTRLEVecB vecFromRLEBunconst2pushFSTRLEVecTemptyFSTRLEVecT vecFromRLET$fEqRLET $fOrdRLET $fShowRLET $fReadRLET $fGenericRLET$fEqRLEB $fOrdRLEB $fShowRLEB $fReadRLEB $fGenericRLEBbytestringToBWTToRLEBbytestringToBWTToRLETtextToBWTToRLEBtextToBWTToRLET textBWTToRLEBbytestringBWTToRLEB textBWTToRLETbytestringBWTToRLET textToRLEBbytestringToRLEB textToRLETbytestringToRLETbytestringFromBWTFromRLEBbytestringFromBWTFromRLETtextFromBWTFromRLEBtextFromBWTFromRLETtextBWTFromRLETbytestringBWTFromRLETtextBWTFromRLEBbytestringBWTFromRLEB textFromRLEBbytestringFromRLEB textFromRLETbytestringFromRLET&vector-0.13.0.0-7U8pFThXyYFEKl1vrDAyiEData.Vector.Unboxed.BaseVector Data.Vectorbytestring-0.11.3.1Data.ByteString.Internal ByteStringbaseGHC.WordWord8 text-1.2.5.0Data.Text.InternalText