The text package

[Tags:bsd3, library, test]

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. It also provides a range of functions for converting Text values to and from ByteStrings, using several standard encodings.

Efficient locale-sensitive support for text IO is also supported.

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

 import qualified Data.Text as T

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:

[Skip to Readme]


Versions 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Dependencies base (>1 && <1), bytestring (>=0.9 && <1.0), deepseq (>= && <1.4), extensible-exceptions, ghc-prim [details]
License BSD3
Copyright 2008-2009 Tom Harper, 2009-2010 Bryan O'Sullivan
Author Bryan O'Sullivan <>
Maintainer Bryan O'Sullivan <> Tom Harper <> Duncan Coutts <>
Category Data, Text
Home page
Bug tracker
Source repository head: hg clone
head: git clone
Uploaded Tue Feb 1 16:40:00 UTC 2011 by BryanOSullivan
Updated Tue Jun 30 07:15:49 UTC 2015 by HerbertValerioRiedel to revision 3
Distributions Arch:, Debian:, Fedora:, FreeBSD:, LTSHaskell:, NixOS:, Stackage:, Tumbleweed:
Downloads 331128 total (18425 in the last 30 days)
5 []
Status Docs not available [build log]
All reported builds failed as of 2016-12-08 [all 6 reports]


  • Data
    • Data.Text
      • Data.Text.Array
      • Data.Text.Encoding
        • Data.Text.Encoding.Error
      • Data.Text.Foreign
      • Data.Text.IO
      • Data.Text.Internal
      • Data.Text.Lazy
        • Data.Text.Lazy.Builder
        • Data.Text.Lazy.Encoding
        • Data.Text.Lazy.IO
        • Data.Text.Lazy.Internal
        • Data.Text.Lazy.Read
      • Data.Text.Read


developeroperate in developer modeDisabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees

Readme for text

Readme for text-

Text: Fast, packed Unicode strings, using stream fusion

This package provides the Data.Text library, a library for the space- and time-efficient manipulation of Unicode text in Haskell.

Normalization, conversion, and collation, oh my!

This library intentionally provides a simple API based on the Haskell prelude's list manipulation functions. For more complicated real-world tasks, such as Unicode normalization, conversion to and from a larger variety of encodings, and collation, use the text-icu package.

That library uses the well-respected and liberally licensed ICU library to provide these facilities.

Get involved!

Please report bugs via the bitbucket issue tracker.

Master Mercurial repository:

  • hg clone

There's also a git mirror:

  • git clone git://

(You can create and contribute changes using either Mercurial or git.)


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, and he is the current maintainer.