
20 Apr
2006
20 Apr
'06
5:24 a.m.
Moved to libraries@ tomasz.zielonka:
And a String class would allow typing FastPackedString literals directly.
On this last matter, you can almost do it: FPS.packAddress "haskell"# or FPS.unsafePackAddress 7 "haskell"# The latter is an O(1) op, the former performs a strlen on construction. And with the magic RULE, you get: {-# RULES "pack/packAddress" forall s# . pack (unpackCString# s#) = packAddress s# #-} such that: FPS.pack "haskell" usually gives you the right thing. Ideally I'd like a way to get the strlen from the compiler, to make O(1) packAddress using -- Don