Memory-efficient representation of Unicode text strings
Description
This package provides the 'ShortText' type which is suitable for keeping many
short strings in memory. This is similiar to how 'ShortByteString' relates to
'ByteString'.
The main difference between 'Text' and 'ShortText' is that 'ShortText' uses
UTF-8 instead of UTF-16 internally and also doesn't support zero-copy slicing
(thereby saving 2 words). Consequently, the memory footprint of a (boxed)
'ShortText' value is 4 words (2 words when unboxed) plus the length of the
UTF-8 encoded payload.