text-1.2.4.0: An efficient packed Unicode text type.

# text-1.2.4.0: An efficient packed Unicode text type.

An efficient packed, immutable Unicode text type (both strict and lazy), with a powerful loop fusion optimization framework.

The `Text` type represents Unicode character strings, in a time and space-efficient manner. This package provides text processing capabilities that are optimized for performance critical use, both in terms of large data quantities and high speed.

The `Text` type provides character-encoding, type-safe case conversion via whole-string case conversion functions (see Data.Text). It also provides a range of functions for converting `Text` values to and from `ByteStrings`, using several standard encodings (see Data.Text.Encoding).

Efficient locale-sensitive support for text IO is also supported (see Data.Text.IO).

These modules are intended to be imported qualified, to avoid name clashes with Prelude functions, e.g.

    import qualified Data.Text as T

## ICU Support

To use an extended and very rich family of functions for working with Unicode text (including normalization, regular expressions, non-standard encodings, text breaking, and locales), see the text-icu package based on the well-respected and liberally licensed ICU library.

## Internal Representation: UTF-16 vs. UTF-8

Currently the `text` library uses UTF-16 as its internal representation which is neither a fixed-width nor always the most dense representation for Unicode text. We're currently investigating the feasibility of changing Text's internal representation to UTF-8 and if you need such a `Text` type right now you might be interested in using the spin-off packages text-utf8 and text-short.

Signatures

Modules

- Data
  Submodules
  - Data.Text
    Submodules
    - Data.Text.Array
    - Data.Text.Encoding
      Submodules
      - Data.Text.Encoding.Error
    - Data.Text.Foreign
    - Data.Text.IO
    - Data.Text.Internal
      Submodules
      - Data.Text.Internal.Builder
        Submodules
        - Data.Text.Internal.Builder.Functions
        - Int
          Submodules
          - Data.Text.Internal.Builder.Int.Digits
        - RealFloat
          Submodules
          - Data.Text.Internal.Builder.RealFloat.Functions
      - Encoding
        Submodules
        - Data.Text.Internal.Encoding.Fusion
          Submodules
          - Data.Text.Internal.Encoding.Fusion.Common
        - Data.Text.Internal.Encoding.Utf16
        - Data.Text.Internal.Encoding.Utf32
        - Data.Text.Internal.Encoding.Utf8
      - Data.Text.Internal.Functions
      - Data.Text.Internal.Fusion
        Submodules
        - Data.Text.Internal.Fusion.CaseMapping
        - Data.Text.Internal.Fusion.Common
        - Data.Text.Internal.Fusion.Size
        - Data.Text.Internal.Fusion.Types
      - Data.Text.Internal.IO
      - Data.Text.Internal.Lazy
        Submodules
        - Encoding
          Submodules
          - Data.Text.Internal.Lazy.Encoding.Fusion
        - Data.Text.Internal.Lazy.Fusion
        - Data.Text.Internal.Lazy.Search
      - Data.Text.Internal.Private
      - Data.Text.Internal.Read
      - Data.Text.Internal.Search
      - Data.Text.Internal.Unsafe
        Submodules
        - Data.Text.Internal.Unsafe.Char
        - Data.Text.Internal.Unsafe.Shift
    - Data.Text.Lazy
      Submodules
      - Data.Text.Lazy.Builder
        Submodules
        - Data.Text.Lazy.Builder.Int
        - Data.Text.Lazy.Builder.RealFloat
      - Data.Text.Lazy.Encoding
      - Data.Text.Lazy.IO
      - Data.Text.Lazy.Internal
      - Data.Text.Lazy.Read
    - Data.Text.Read
    - Data.Text.Unsafe