úÎn9htF      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEportable provisional0Julian Fleischer <julian.fleischer@fu-berlin.de> TrustworthyJF+Utility class for working with characters. G+Retrieve the value of the given character. H,Construct a character form the given value. BThe goal of this class is to offer the same interface for various  types of strings (I, J , Haskell K , etc.). H If a certain type offers a native implementation for a given function,  5 uses it. If not, a default implementation is given. )All of these functions are prefixed with s to avoid nameclashes + with existing functions from the prelude. KThe complexity and efficiency of these functions depends on the underlying  string type being used. 0Check whether the given string is empty or not. null generalised. The empty string. L generalised. M, generalised. This function is undefined if   would return True. N, generalised. This function is undefined if   would return True. O, generalised. This function is undefined if   would return True. P, generalised. This function is undefined if   would return True. Q generalised. R generalised. S generalised. T generalised. )Replace a substring with another string. ABreaks the string on the first occurence of the given substring. / strBreak "xx" "1x2xx3xx4" = ("1x2", "xx3xx4") Like  :, but the string to break on is excluded from the result. - strSplit "xx" "1x2xx3xx4" = ("1x2", "3xx4") JSplit a string into multiple fragments, separated by the given substring. 2 strSplitAll "xx" "1x2xx3xx4" = ["1x2", "3", "4"] 2Check if the string starts with the given string. 0Check if the string ends with the given string. Cons 7Turn the first character into an upper case character. $Map a function over all characters. <Concatenate all the strings in the list to a single string. ;Strips white space characters off both ends of the string. ;Appends the given character n times to the left, such that , the resulting string has the given length. ' strPadLeft '0' 8 "4711" == "00004711" <Appends the given character n times to the right, such that , the resulting string has the given length. ( strPadRight '0' 8 "4711" == "47110000" =Appends the given character n times to both sides, such that , the resulting string has the given length. ' strPadBoth '0' 8 "4711" == "00471100" 'Create a string from a Haskell String. OCreate a string from a Haskell String. If the string does not support unicode, , the Haskell String is encoded using UTF-8. *Convert the string into a Haskell String. )Convert the string into a list of bytes. The > class provides functions for working with arbitrary Strings. 7 It is basically the same interface as provided by the  class. G However, every input string is a Haskell String here, thus easing the F usage of different string types with native Haskell String literals.  For example  strAppend suffix& works with any string type for which  an instance of Str2 is defined. In order to maximize the ease of use 2 of this library, the functions are prefixed with str. KThe complexity and efficiency of these functions depends on the underlying  string type being used. BMinimal complete definition: It suffices to provide instances for  U and . 0Check whether the given string is empty or not. V generalised. !L generalised. "M, generalised. This function is undefined if   would return True. #N, generalised. This function is undefined if   would return True. $O, generalised. This function is undefined if   would return True. %P, generalised. This function is undefined if   would return True. &Q generalised. 'R generalised. ()Replace a substring with another string. )ABreaks the string on the first occurence of the given substring. / strBreak "xx" "1x2xx3xx4" = ("1x2", "xx3xx4") *Like ):, but the string to break on is excluded from the result. - strSplit "xx" "1x2xx3xx4" = ("1x2", "3xx4") +JSplit a string into multiple fragments, separated by the given substring. 2 strSplitAll "xx" "1x2xx3xx4" = ["1x2", "3", "4"] ,1Turn all characters in the string to upper case. -1Turn all characters in the string to lower case. .6Turn the first character in the string to upper case. /map generalised. 0concat generalised. 12Glue together multiple strings by a given Haskell K. $ strJoin x = concat . intersperse x 2Appends the given Haskell K to the string. ++ generalised. , strAppend " world" "hello" = "hello world" 3Cons generalised. 4;Strips white space characters off both ends of the string. 5;Appends the given character n times to the left, such that , the resulting string has the given length. ' strPadLeft '0' 8 "4711" == "00004711" 6<Appends the given character n times to the right, such that , the resulting string has the given length. ( strPadRight '0' 8 "4711" == "47110000" 7=Appends the given character n times to both sides, such that , the resulting string has the given length. ' strPadBoth '0' 8 "4711" == "00471100" 8Reverse the string. 95Check if the given Haskell String equals the string. ::Check if the string starts with the given Haskell String. ;8Check if the string ends with the given Haskell String. <'Create a string from a Haskell String. =OCreate a string from a Haskell String. If the string does not support unicode, , the Haskell String is encoded using UTF-8. >*Convert the string into a Haskell String. ?)Convert the string into a list of bytes. WReturns True6 exactly for space (0x20), and horizontal tab (0x09). XReturns True` exactly for space (0x20), horizontal tab (0x09), carriage return (0x0D), and line feed (0x0A). @ Convert a Y into a Z. A Convert a Z into a Y. B Create a J! object form an ordinary Haskell K. CCreate a lazy [! object from an ordinary Haskell K. D Create a I! object form an ordinary Haskell K. H This function will encode a String using the UTF-8 character encoding. ECreate a lazy \! object from an ordinary Haskell K. H This function will encode a String using the UTF-8 character encoding. _FGH  !"#$%&'(Needle.  Replacement.  Haystack. Result: Haystack with Needle replaced by  Replacement. )*+,-./0123456789The Haskell String.  The string. :;<=>?WX@ABCDE]^_`abcdefghijklmnopF  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFBCDE@A !"#$%&'()*+,-./0123456789:;<=>? FGH  !"#$%&'()*+,-./0123456789:;<=>?WX@ABCDE]^_`abcdefghijklmnopq      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSQTUQTVQTWQTXQTYQTZQT[QT\QT]^_`QTabc^deQfgNhPKiMjklmnopqrstuvwxyz{|}~ strings-1.1 Data.StringsStringssNullsEmptysLensHeadsLastsInitsTailsTakesDrop sTakeWhile sDropWhilesReplacesBreaksSplit sSplitAll sStartsWith sEndsWithsCons sCapitalizesMapsConcatsTrimsPadLeft sPadRightsPadBothsReverse sFromStringsFromUnicodeString sToStringsToWord8StrstrNullstrLenstrHeadstrLaststrInitstrTailstrTakestrDrop strReplacestrBreakstrSplit strSplitAll strToUpper strToLower strCapitalizestrMap strConcatstrJoin strAppendstrConsstrTrim strPadLeft strPadRight strPadBoth strReversestrEq strStartsWith strEndsWith fromStringfromUnicodeStringtoStringtoWord8 charToByte byteToChartextlazyTextbytes lazyBytesCharsordchrbytestring-0.10.0.2Data.ByteString.Internal ByteString text-0.11.3.1Data.Text.InternalTextbaseGHC.BaseStringGHC.Listlengthheadlastinittailtakedrop takeWhile dropWhileghc-prim GHC.ClassesEqnullisSpace isWhiteSpace GHC.TypesCharGHC.WordWord8Data.Text.Lazy.InternalData.ByteString.Lazy.Internal$fCharsInteger $fCharsInt64 $fCharsInt32 $fCharsInt16 $fCharsInt8 $fCharsWord64 $fCharsWord32 $fCharsWord16 $fCharsWord8 $fCharsInt $fStrings[] $fStringsText$fStringsText0$fStringsByteString$fStringsByteString0$fStr[]$fStrByteString$fStrByteString0 $fStrText $fStrText0