An efficient packed, immutable Unicode text type (both strict and lazy). 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. 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.

data, library, text, Propose Tags, Data.Text, Data.Text.Encoding, Data.Text.IO, text-icu package, ICU library, Skip to Readme, Index, Quick Jump, Data.Text.Array, Data.Text.Encoding.Error, Data.Text.Foreign, Data.Text.IO.Utf8, Data.Text.Internal, Data.Text.Internal.ArrayUtils, Data.Text.Internal.Builder, Data.Text.Internal.Builder.Functions, Data.Text.Internal.Builder.Int.Digits, Data.Text.Internal.Builder.RealFloat.Functions, Data.Text.Internal.ByteStringCompat, Data.Text.Internal.Encoding, Data.Text.Internal.Encoding.Fusion, Data.Text.Internal.Encoding.Fusion.Common, Data.Text.Internal.Encoding.Utf16, Data.Text.Internal.Encoding.Utf32, Data.Text.Internal.Encoding.Utf8, Data.Text.Internal.Fusion, 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, Data.Text.Internal.Lazy.Encoding.Fusion, Data.Text.Internal.Lazy.Fusion, Data.Text.Internal.Lazy.Search, Data.Text.Internal.PrimCompat, Data.Text.Internal.Private, Data.Text.Internal.Read, Data.Text.Internal.Search, Data.Text.Internal.StrictBuilder, Data.Text.Internal.Unsafe, Data.Text.Internal.Unsafe.Char, Data.Text.Internal.Validate, Data.Text.Internal.Validate.Native, Data.Text.Internal.Validate.Simd, Data.Text.Lazy, Data.Text.Lazy.Builder, 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, More info, text-2.1.1.tar.gz, browse, Package description, Package maintainers, BryanOSullivan, HerbertValerioRiedel, Bodigrim, lyxia, chessai, topos, edit package information , github issue tracker, haskell, string, string-manipulation, unicode, utf8
cabal install text-2.1.1


text Hackage Stackage LTS Stackage Nightly

Haskell library for space- and time-efficient operations over Unicode text.

Get involved!

Please report bugs via the github issue tracker.

The main repo:

git clone

To run benchmarks please clone and unpack test files:

cd text
git clone benchmarks/text-test-data
make -Cbenchmarks/text-test-data


The base code for this library was originally written by Tom Harper, based on the stream fusion framework developed by Roman Leshchinskiy, Duncan Coutts, and Don Stewart.

The core library was fleshed out, debugged, and tested by Bryan O'Sullivan. Transition from UTF-16 to UTF-8 is by Andrew Lelechenko.