On 1/23/08, Johan Tibell <johan.tibell@gmail.com> wrote:

[..]

My proposal is for I/O functions to specify the encoding they use if
they accept or return Chars (and Strings). If they deal in terms of
bytes (e.g. socket functions) they should accept and return Word8s.
Optionally, text I/O functions could default to the system locale
setting.

Yes, this reflects my recent experience, Char is not a good representation for an 8-bit byte.  This thread came out of my attempt to add a module to dataenc[1] that would make base64-string[2] obsolete.  As you probably can guess I came to the conclusion that a function for data encoding with type 'String -> String' is plain wrong. :-)

/M

[1]: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/dataenc-0.10.2
[2]: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/base64-string-0.1