Thinking about what's missing in our library coverage

wren ng thornton wren at
Tue Aug 4 20:02:25 EDT 2009

Isaac Dupree wrote:
>>>    * Data.Map String Int
>>>    * Data.Map ByteString Int
>>>    * bytestring-trie
> What about a Unicode/text aware version of ByteString?  I mean, I 
> suspect people will want to use this map for strings of characters, and 
> I want to make sure we don't hardcode a type that will cause us trouble 
> in the future (and I have this idea in my head that ByteString is 
> supposed to represent byte-sequences and not character-sequences).

The bytestring-trie package uses ByteStrings as a vector of bytes. That 
is, there's no built in support for or against textual data (modulo 
byte==char traditions). Anything that can be rendered into a ByteString 
can be tried (with performance depending on the suitability of the 
encoding). I can't really see any way to make use of knowing that the 
data is textual, though.

I've thought about adding a typeclass to automate the encoding/decoding 
between various "string" types and the ByteStrings used internally. 
Unfortunately such a class would have a very large number of methods, 
and is of dubious utility in the big picture. All in all, the problem of 
rendering an abstract string into a sequence of bytes belongs to another 

Live well,

More information about the Libraries mailing list