úεå°i      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghportable experimentalemertens@galois.comEncode a string using  and store the result in a i. Decode a string using  using a i as input. > | This is not safe but it is necessary if UTF-8 encoded text  | has been loaded into a i prior to being decoded. jCEncode a Haskell String to a list of Word8 values, in UTF8 format. LDecode a UTF8 string packed into a list of Word8 values, directly to String utf8Encode str- is a convenience function; checks to see if  str isn'7t UTF-8 encoded before doing so. Sometimes useful, but A you are better off keeping track of the encoding so as to avoid  the cost of checking. isUTF8Encoded str9 tries to recognize input string as being in UTF-8 form.  :Converts a Haskell string into a UTF8 encoded bytestring. 9Convert a UTF8 encoded bytestring into a Haskell string. & Invalid characters are replaced with '\xFFFD'. @This character is used to mark errors in a UTF8 encoded string. /Try to extract a character from a byte string.  Returns k0 if there are no more bytes in the byte string. = Otherwise, it returns a decoded character and the number of # bytes used in its representation. " Errors are replaced by character  '\0xFFFD'. *Split after a given number of characters. / Negative values are treated as if they are 0. take n s returns the first n characters of s.  If s has less then n) characters, then we return the whole of s. drop n s returns the s without its first n characters.  If s has less then n1 characters, then we return the an empty string. @Split a string into two parts: the first is the longest prefix F that contains only characters that satisfy the predicate; the second ! part is the rest of the string. " Invalid characters are passed as  '\0xFFFD' to the predicate. @Split a string into two parts: the first is the longest prefix M that contains only characters that do not satisfy the predicate; the second ! part is the rest of the string. " Invalid characters are passed as  '\0xFFFD' to the predicate. 2Get the first character of a byte string, if any. & Malformed characters are replaced by  '\0xFFFD'. &Traverse a bytestring (right biased). %Traverse a bytestring (left biased). + This fuction is strict in the acumulator. ;Counts the number of characters encoded in the bytestring. 0 Note that this includes replacment characters. %Split a string into a list of lines.  Lines are termianted by '\n' or the end of the string. < Empty line may not be terminated by the end of the string.  See also  'lines\''. %Split a string into a list of lines.  Lines are termianted by '\n' or the end of the string. < Empty line may not be terminated by the end of the string. * This function preserves the terminators.  See also . lm     BThe type of strngs that are represented using tthe UTF8 encoding. E The parameters is the type of the container for the representation. n!"#6Converts a Haskell string into a UTF8 encoded string.  Complexity: linear. $5Convert a UTF8 encoded string into a Haskell string. $ Invalid characters are replaced by replacement_char.  Complexity: linear. %DChecks if there are no more bytes in the underlying representation. &*Split after a given number of characters. / Negative values are treated as if they are 0.  See also  bytesSplitAt. 'FSplit after a given number of bytes in the underlying representation.  See also &. (HTake only the given number of bytes from the underlying representation.  See also *. )CDrop the given number of bytes from the underlying representation.  See also +. *take n s returns the first n characters of s.  If s has less then n) characters, then we return the whole of s. +drop n s returns the s without its first n characters.  If s has less then n1 characters, then we return the an empty string. ,@Split a string into two parts: the first is the longest prefix F that contains only characters that satisfy the predicate; the second ! part is the rest of the string. " Invalid characters are passed as  '\0xFFFD' to the predicate. -@Split a string into two parts: the first is the longest prefix M that contains only characters that do not satisfy the predicate; the second ! part is the rest of the string. " Invalid characters are passed as replacement_char to the predicate. .2Get the first character of a byte string, if any. $ Invalid characters are replaced by replacement_char. /?Extract the first character for the underlying representation, @ if one is avaialble. It also returns the number of bytes used ) in the representation of the character.  See also .,  dropBytes. 0&Traverse a bytestring (right biased). 1%Traverse a bytestring (left biased). , This fuction is strict in the accumulator. 2;Counts the number of characters encoded in the bytestring. 0 Note that this includes replacment characters. F The function is linear in the number of bytes in the representation. 3%Split a string into a list of lines.  Lines are termianted by '\n' or the end of the string. < Empty line may not be terminated by the end of the string.  See also  'lines\''. 4%Split a string into a list of lines.  Lines are termianted by '\n' or the end of the string. < Empty line may not be terminated by the end of the string. * This function preserves the terminators.  See also 3.  !"#$%&'()*+,-./01234 #$!".&*+,-10234%/'() !"#$%&'()*+,-./01234portable experimentalemertens@galois.comoEncode a string in UTF8 form. pDecode a string from UTF8 q$Convert a list of bytes to a String rString to list of bytes. 5The 57 function outputs a value of any printable type to the 8 standard output device. This function differs from the L System.IO.print in that it preserves any UTF8 encoding of the shown value. 62Write a UTF8 string to the standard output device 7 The same as 6 , but adds a newline character. 80Read a UTF8 line from the standard input device 9The 9 function combines 8 and readIO, preserving UTF8 :;<The < function reads a file and 4 returns the contents of the file as a UTF8 string. - The file is read lazily, on demand, as with C. =The computation = file str! function writes the UTF8 string str,  to the file file. >The computation > file str" function appends the UTF8 string str,  to the file file. ?Read a UTF8 line from a Handle @(Lazily read a UTF8 string from a Handle A!Write a UTF8 string to a Handle. B6Write a UTF8 string to a Handle, appending a newline. C$Lazily read stdin as a UTF8 string. D56789:;<=>?@ABCD56789:;<=>DC?@AB56789:;<=>?@ABCDEFGHIJEFGHIJEFGHIJEFGHIJK:Converts a Haskell string into a UTF8 encoded bytestring. L9Convert a UTF8 encoded bytestring into a Haskell string. & Invalid characters are replaced with '\xFFFD'. M@This character is used to mark errors in a UTF8 encoded string. N/Try to extract a character from a byte string.  Returns k0 if there are no more bytes in the byte string. = Otherwise, it returns a decoded character and the number of # bytes used in its representation. " Errors are replaced by character  '\0xFFFD'. O*Split after a given number of characters. / Negative values are treated as if they are 0. Ptake n s returns the first n characters of s.  If s has less then n) characters, then we return the whole of s. Qdrop n s returns the s without its first n characters.  If s has less then n1 characters, then we return the an empty string. R@Split a string into two parts: the first is the longest prefix F that contains only characters that satisfy the predicate; the second ! part is the rest of the string. " Invalid characters are passed as  '\0xFFFD' to the predicate. S@Split a string into two parts: the first is the longest prefix M that contains only characters that do not satisfy the predicate; the second ! part is the rest of the string. " Invalid characters are passed as  '\0xFFFD' to the predicate. T2Get the first character of a byte string, if any. & Malformed characters are replaced by  '\0xFFFD'. U&Traverse a bytestring (right biased). V%Traverse a bytestring (left biased). + This fuction is strict in the acumulator. W;Counts the number of characters encoded in the bytestring. 0 Note that this includes replacment characters. X%Split a string into a list of lines.  Lines are termianted by '\n' or the end of the string. < Empty line may not be terminated by the end of the string.  See also  'lines\''. Y%Split a string into a list of lines.  Lines are termianted by '\n' or the end of the string. < Empty line may not be terminated by the end of the string. * This function preserves the terminators.  See also X. KLMNOPQRSTUVWXYNMTOPQRSKLVUWXYKLMNOPQRSTUVWXYZ:Converts a Haskell string into a UTF8 encoded bytestring. [9Convert a UTF8 encoded bytestring into a Haskell string. & Invalid characters are replaced with '\xFFFD'. \@This character is used to mark errors in a UTF8 encoded string. ]/Try to extract a character from a byte string.  Returns k0 if there are no more bytes in the byte string. = Otherwise, it returns a decoded character and the number of # bytes used in its representation. " Errors are replaced by character  '\0xFFFD'. ^*Split after a given number of characters. / Negative values are treated as if they are 0. _take n s returns the first n characters of s.  If s has less then n) characters, then we return the whole of s. `drop n s returns the s without its first n characters.  If s has less then n1 characters, then we return the an empty string. a@Split a string into two parts: the first is the longest prefix F that contains only characters that satisfy the predicate; the second ! part is the rest of the string. " Invalid characters are passed as  '\0xFFFD' to the predicate. b@Split a string into two parts: the first is the longest prefix M that contains only characters that do not satisfy the predicate; the second ! part is the rest of the string. " Invalid characters are passed as  '\0xFFFD' to the predicate. c2Get the first character of a byte string, if any. & Malformed characters are replaced by  '\0xFFFD'. d&Traverse a bytestring (right biased). e%Traverse a bytestring (left biased). + This fuction is strict in the acumulator. f;Counts the number of characters encoded in the bytestring. 0 Note that this includes replacment characters. g%Split a string into a list of lines.  Lines are termianted by '\n' or the end of the string. < Empty line may not be terminated by the end of the string.  See also  'lines\''. h%Split a string into a list of lines.  Lines are termianted by '\n' or the end of the string. < Empty line may not be terminated by the end of the string. * This function preserves the terminators.  See also g. Z[\]^_`abcdefgh]\c^_`abZ[edfghZ[\]^_`abcdefghs       !"#$%&'()*+,-. !"#$%&'(/0123456789:;<=>?@ABCD !"#$%&'( !"#$%&'(EFGHEIJKLM  NOPutf8-string-0.3.5Data.ByteString.Lazy.UTF8Data.ByteString.UTF8Codec.Binary.UTF8.StringCodec.Binary.UTF8.GenericData.String.UTF8System.IO.UTF8System.Environment.UTF8bytestring-0.9.1.8Data.ByteString.Lazy.Internal ByteStringData.ByteString.Internal encodeString decodeStringencodedecode utf8Encode isUTF8Encoded UTF8Bytesbsplitbdropbuncons elemIndexemptynullpacktail fromStringtoStringreplacement_charsplitAttakedropspanbreakunconsfoldrfoldllengthlineslines'UTF8fromReptoRep byteSplitAtbyteTakebyteDropprintputStrputStrLngetLinereadLnopenBinaryFilewithBinaryFilereadFile writeFile appendFilehGetLine hGetContentshPutStr hPutStrLn getContentsinteractgetArgs getProgNamegetEnvwithArgs withProgNamegetEnvironmentbaseGHC.BaseStringreplacement_character Data.MaybeNothingunconsBunconsLStr bytesToString stringToBytes