h&"       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred(;text-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 s to a  t.#text-compressionHelper function for converting u 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 ts to a s.&text-compression!Helper function for converting a  ss to a s.'text-compressionHelper function for converting  to a u  !"#$%&' !" #$%&'(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred(;A"-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 0 in the (strict) ST monad.0text-compression Abstract 0 type utilizing a sequence.1text-compression Abstract 1 and associated state type.2text-compression Abstract 2 state type.3text-compression"Abstract data type representing a 4 in the (strict) ST monad.4text-compression Abstract 4 type utilizing a sequence.5text-compression Abstract 5 state type.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 sequence.9text-compression Basic RLE (u ) data type.;text-compression Basic RLE (s ) data type.=text-compressionState function to push 8 data into stack.>text-compressionState function to create empty 7 type.?text-compressionState function to update 6.@text-compressionState function to create empty 6 type.Atext-compressionState function to update 5.Btext-compressionState function to create empty 5 type.Ctext-compressionStrict state monad function.Dtext-compressionState function to push 4 data into stack.Etext-compressionState function to create empty 3 type.Ftext-compressionState function to update 2.Gtext-compressionState function to create empty 2 type.Htext-compressionState function to update 1.Itext-compressionState function to create empty 1 type.Jtext-compressionStrict state monad function.Ktext-compressionState function to push 0 data into stack.Ltext-compressionState function to create empty / type.Mtext-compressionStrict state monad function.Ntext-compressionState function to push - data into stack.Otext-compressionState function to create empty - type.Ptext-compressionStrict state monad function.$-./0123456789:;<=>?@ABCDEFGHIJKLMNOP$;<9:87=>6?@5ABC43DE2FG1HIJ0/KLM.-NOP(c) Matthew Mosior 2022 BSD-stylemattm.github@gmail.comportable Safe-Inferred"([text-compression!Helper function for converting a s to a ; via a  first.\text-compression!Helper function for converting a s to a 9 via a  first.]text-compression!Helper function for converting a u to a ; via a  first.^text-compression!Helper function for converting a u to a 9 via a  first._text-compressionTake a  of t)s and generate the Run-length encoding (;).`text-compressionTake a  of t)s and generate the Run-length encoding (;).atext-compressionTake a  of t)s and generate the Run-length encoding (;).btext-compressionTake a  of t)s and generate the Run-length encoding (9).ctext-compressionTakes a u& and returns the Run-length encoding (;).dtext-compressionTakes a v of s's and returns the Run-length encoding (;).etext-compressionTakes a u+ and returns the Run-length encoding (RLE).ftext-compressionTakes a s+ and returns the Run-length encoding (RLE).gtext-compression!Helper function for converting a ed ; back to the original s.htext-compression!Helper function for converting a ed 9 back to the original s.itext-compression!Helper function for converting a ed ; back to the original u.jtext-compression!Helper function for converting a ed 9 back to the original u.ktext-compressionTakes a 9 and returns the  of us.ltext-compressionTakes a 9 and returns the  of ss.mtext-compressionTakes a ; and returns the  of us.ntext-compressionTake a ; and returns the  of ss.otext-compressionTakes a ; and returns the original v of us.ptext-compressionTakes a ; and returns the original v of ss.qtext-compressionTakes a 9 and returns the original v of us.rtext-compressionTakes a 9 and returns the original v of ss.[\]^_`abcdefghijklmnopqr[\]^_`abcdefghijklmnopqr        !""#$%&'()*+,-./0123456789:;;<<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~/text-compression-0.1.0.9-LxRAkdkYpL266wwXeUuWRwData.BWT.InternalData.BWTData.RLE.InternalData.RLE STBWTCounterSTBWTSeqBWTSeq BWTMatrixBWT SuffixArraySuffix suffixindexsuffixstartpossuffixsaToBWTcreateSuffixArraysortTB pushSTBWTSeq emptySTBWTSequpdateSTBWTCounteremptySTBWTCountermagicInverseBWTcreateBWTMatrix$fEqBWT$fOrdBWT $fShowBWT $fReadBWT $fGenericBWT $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