Text is a more efficient alternative to Haskell's standard
String is defined as a linked list of characters in the standard Prelude, per the Haskell Report:
type String = [Char]
Text is represented as a packed array of Unicode characters. This is similar to how most other high-level languages represent strings, and gives much better time and space efficiency than the list version.
Text should be preferred over
String for all production usage. A notable exception is depending on a library which has a
String API, but even in that case there may be a benefit of using
Text internally and converting to a
String just before interfacing with the library.
All of the examples in this topic use the
OverloadedStrings language extension.