[Haskell] Real life examples

Ben Rudiak-Gould Benjamin.Rudiak-Gould at cl.cam.ac.uk
Wed Nov 24 09:40:52 EST 2004


John Meacham wrote:

 > randomIO [...] Data.Unique [...] Atom.hs [...] caching

These are all great examples of cases where having per-process state 
makes sense.

But they can all be implemented with George Russell's library plus safe 
(pure) uses of unsafePerformIO. I hope his library or something like it 
will become a part of the standard distribution, and there's nothing 
wrong with having (pure) functions in the standard library which can't 
be implemented in Haskell, so I don't think these examples are 
sufficient on their own to justify a language extension. I'd still like 
to see an example of something that can be done with top-level <- but is 
inconvenient or impossible with George Russell's library.

 >This is not a minor performance gain. in ginsu it dropped the memory
 >usage from > 100megs to 10megs. I would call that vital. when it used
 >100megs it was not a usable program.

Not that I think implementing Atom with a global hashtable is a bad 
idea, but I'm curious where in that range the memory usage would be if 
you defined

    type Atom = PackedString
    toAtom = packString
    fromAtom = unpackPS

-- Ben



More information about the Haskell mailing list