Text
is a more efficient alternative to Haskell's standard String
type. 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.