[Haskell-cafe] FastString a misnomer

Bulat Ziganshin bulatz at HotPOP.com
Fri Oct 21 03:11:51 EDT 2005

Hello Donald,

Friday, October 21, 2005, 5:52:32 AM, you wrote:

DBS> Ok, so a rough structure of the final lib would be:

DBS>     Data                Data                   System
DBS>     |                   |                      |
DBS>     ByteArray (?)       PackedString           Posix
DBS>                         |      |               |
DBS>                         UTF8   Latin1 ...      MMap (providing mmapFile :: FilePath -> ByteArray)

i propose to make separate library with UTF8 packing/unpacking
routines. for example, i can someday create library for 0-ended
utf8-encoded strings, which will require this UTF8 lib. also, someday
we will need UTF16 packing/unpacking library to deal with windows
wide-string apis 

also, how about implementing general "Vector a" type instead of
ByteArray? it will be helpful in making 2/4-byte PackedStrings, and
moreover - it will be interesting for other applications

data Vector a = Vector !Int !(ForeignPtr a)
null = ...
reverse = ...

data PS_UTF8 = PS_UTF8 (Vector Word8) !Int  -- as John Meacham suggested
type PS_Latin1 = Vector Word8        -- all functions are already implemented!
type PS_UCS2   = Vector Word16       -- ditto

Best regards,
 Bulat                            mailto:bulatz at HotPOP.com

More information about the Haskell-Cafe mailing list