text: An efficient packed Unicode text type.

[ bsd2, data, library, text ] [ Propose Tags ]

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.

[Skip to Readme]


Manual Flags


operate in developer mode


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


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 2.0, 2.0.1, 2.0.2, 2.1, 2.1.1
Change log changelog.md
Dependencies array (>=0.3 && <0.6), base (>=4.9 && <5), binary (>=0.5 && <0.9), bytestring (>=0.10.4 && <0.13), deepseq (>=1.1 && <1.6), ghc-prim (>=0.2 && <0.12), template-haskell (>=2.5 && <2.22) [details]
License BSD-2-Clause
Copyright 2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper
Author Bryan O'Sullivan <bos@serpentine.com>
Maintainer Haskell Text Team <andrew.lelechenko@gmail.com>, Core Libraries Committee
Revised Revision 1 made by Bodigrim at 2024-02-06T20:06:37Z
Category Data, Text
Home page https://github.com/haskell/text
Bug tracker https://github.com/haskell/text/issues
Source repo head: git clone https://github.com/haskell/text
Uploaded by Bodigrim at 2021-08-08T19:28:37Z
Distributions Arch:, Fedora:2.0.2, FreeBSD:
Reverse Dependencies 5464 direct, 9222 indirect [details]
Downloads 617220 total (915 in the last 30 days)
Rating 2.75 (votes: 25) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
All reported builds failed as of 2021-08-08 [all 1 reports]

Readme for text-

[back to package description]

text: Fast, packed Unicode strings, using stream fusion Hackage

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

Get involved!

Please report bugs via the github issue tracker.

The main repo:

git clone git://github.com/haskell/text.git

To run benchmarks please clone and unpack test files:

git clone https://github.com/bos/text-test-data benchmarks/text-test-data
cd benchmarks/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 bos@serpentine.com, and he is the current maintainer.