úÎýHj      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiportable experimentalemertens@galois.com Safe-InferedEncode a string using  and store the result in a j. Decode a string using  using a j as input. > | This is not safe but it is necessary if UTF-8 encoded text  | has been loaded into a j prior to being decoded. HEncode a single Haskell Char to a list of Word8 values, in UTF8 format. CEncode 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. portable experimentalemertens@galois.com Safe-Infered: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 than n) characters, then we return the whole of s. drop n s returns the s without its first n characters.  If s has less than n- characters, then we return 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 function is strict in the accumulator. ;Counts the number of characters encoded in the bytestring. 1 Note that this includes replacement characters. %Split a string into a list of lines.  Lines are terminated by '\n' or the end of the string. = Empty lines may not be terminated by the end of the string.  See also  'lines\''. %Split a string into a list of lines.  Lines are terminated by '\n' or the end of the string. = Empty lines may not be terminated by the end of the string. * This function preserves the terminators.  See also .   lmn       lmnportable experimentalemertens@galois.com Safe-Infered!BThe type of strings that are represented using the UTF8 encoding. D The parameter is the type of the container for the representation. $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 than n) characters, then we return the whole of s. ,drop n s returns the s without its first n characters.  If s has less than n- characters, then we return 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. 0?Extract the first character for the underlying representation, @ if one is available. It also returns the number of bytes used ) in the representation of the character.  See also /,  dropBytes. 1&Traverse a bytestring (right biased). 2%Traverse a bytestring (left biased). - This function is strict in the accumulator. 3;Counts the number of characters encoded in the bytestring. 1 Note that this includes replacement characters. F The function is linear in the number of bytes in the representation. 4%Split a string into a list of lines.  Lines are terminated by '\n' or the end of the string. = Empty lines may not be terminated by the end of the string.  See also  'lines\''. 5%Split a string into a list of lines.  Lines are terminated by '\n' or the end of the string. = Empty lines may not be terminated by the end of the string. * This function preserves the terminators.  See also 4. !"#$%&'()*+,-./012345o !"#$%&'()*+,-./012345! $%"#/'+,-.21345&0()*!"#$%&'()*+,-./012345oportable experimentalemertens@galois.com Safe-Infered 6The 67 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. 72Write a UTF8 string to the standard output device 8 The same as 7 , but adds a newline character. 90Read a UTF8 line from the standard input device :The : function combines 9 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 D. >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 A(Lazily read a UTF8 string from a Handle B!Write a UTF8 string to a Handle. C6Write a UTF8 string to a Handle, appending a newline. D$Lazily read stdin as a UTF8 string. 6789:;<=>?@ABCDE6789:;<=>?@ABCDE6789:;<=>?ED@ABC6789:;<=>?@ABCDEportable experimentalemertens@galois.com Safe-InferedFGHIJKFGHIJKFGHIJKFGHIJKÿportable This module provides fast, validated encoding and decoding functions between 'ByteString's and 'String's. It does not exactly match the output of the Codec.Binary.UTF8.String output for invalid encodings as the number of replacement characters is sometimes longer. experimentalemertens@galois.com Safe-InferedL:Converts a Haskell string into a UTF8 encoded bytestring. M9Convert a UTF8 encoded bytestring into a Haskell string. & Invalid characters are replaced with '\xFFFD'. N@This character is used to mark errors in a UTF8 encoded string. O/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'. P*Split after a given number of characters. / Negative values are treated as if they are 0. Qtake n s returns the first n characters of s.  If s has less than n) characters, then we return the whole of s. Rdrop n s returns the s without its first n characters.  If s has less than n- characters, then we return an empty string. S@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. T@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. U2Get the first character of a byte string, if any. & Malformed characters are replaced by  '\0xFFFD'. V&Traverse a bytestring (right biased). W%Traverse a bytestring (left biased). - This function is strict in the accumulator. X;Counts the number of characters encoded in the bytestring. 1 Note that this includes replacement characters. Y%Split a string into a list of lines.  Lines are terminated by '\n' or the end of the string. = Empty lines may not be terminated by the end of the string.  See also  'lines\''. Z%Split a string into a list of lines.  Lines are terminated by '\n' or the end of the string. = Empty lines may not be terminated by the end of the string. * This function preserves the terminators.  See also Y. LMNOPQRSTUVWXYZLMNOPQRSTUVWXYZONUPQRSTLMWVXYZLMNOPQRSTUVWXYZÿportable This module provides fast, validated encoding and decoding functions between 'ByteString's and 'String's. It does not exactly match the output of the Codec.Binary.UTF8.String output for invalid encodings as the number of replacement characters is sometimes longer. experimentalemertens@galois.com Safe-Infered[: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 than n) characters, then we return the whole of s. adrop n s returns the s without its first n characters.  If s has less than n- characters, then we return an empty string. b@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. c@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. d2Get the first character of a byte string, if any. & Malformed characters are replaced by  '\0xFFFD'. e&Traverse a bytestring (right biased). f%Traverse a bytestring (left biased). - This function is strict in the accumulator. g;Counts the number of characters encoded in the bytestring. 1 Note that this includes replacement characters. h%Split a string into a list of lines.  Lines are terminated by '\n' or the end of the string. = Empty lines may not be terminated by the end of the string.  See also  'lines\''. i%Split a string into a list of lines.  Lines are terminated by '\n' or the end of the string. = Empty lines may not be terminated by the end of the string. * This function preserves the terminators.  See also h. [\]^_`abcdefghi[\]^_`abcdefghi^]d_`abc[\feghi[\]^_`abcdefghip       !"#$%&'()*+,-./ !"#$%&'()0123456789:;<=>?@ABCDE !"#$%&'() !"#$%&'()FGHFIJKLMNOutf8-string-0.3.7Data.ByteString.Lazy.UTF8Data.ByteString.UTF8Codec.Binary.UTF8.StringCodec.Binary.UTF8.GenericData.String.UTF8System.IO.UTF8System.Environment.UTF8bytestring-0.9.2.1Data.ByteString.Lazy.Internal ByteStringData.ByteString.Internal encodeString decodeString encodeCharencodedecode utf8Encode isUTF8Encoded UTF8Bytesbsplitbdropbuncons elemIndexemptynullpacktail fromStringtoStringreplacement_charsplitAttakedropspanbreakunconsfoldrfoldllengthlineslines'UTF8fromReptoRep byteSplitAtbyteTakebyteDropprintputStrputStrLngetLinereadLnopenBinaryFilewithBinaryFilereadFile writeFile appendFilehGetLine hGetContentshPutStr hPutStrLn getContentsinteractgetArgs getProgNamegetEnvwithArgs withProgNamegetEnvironmentbaseGHC.BaseString Data.MaybeNothing$fUTF8Bytes[]Int$fUTF8BytesByteStringInt64$fUTF8BytesByteStringInt $fShowUTF8