
On Thu, Mar 30, 2006 at 02:12:29PM -0800, Andy Gill wrote:
- How easy is this to add to the compilers? It looks pretty simple to me,
jhc already has it by accident, it uses DrIFT for implementing its deriving methods which has had deepSeq deriving for a while. (though, it calls it 'rnf' for reduce to normal form)
and would provide huge bang-for-buck for Galois.
out of curiosity, do you use tools like DrIFT or TH to auto-generate DeepSeq instances for you?
- Any alternatives to the key concern; stomping on space leaks. (This proposal is orthogonal to the seq/Class discussion)
One thing, in order to deepSeq arbitrary types, it would mean heap locations need to be self-describing, which is not true in general for some haskell implementations. (the tag might have been unboxed away for instance, or you only have an opaque code pointer representation) requiring a typeclass DeepSeq a => would solve this problem as the "shape" of the type will be carried in the typeclass, either as a method(ghc) or a type parameter (in jhc) or discarded on implementations that don't need it. (yhc I am guessing?) So what I'd like to see is for the compiler to be able to auto-derive a DeepSeq instance so compilers are free to choose the best implementation method. incidentally, I'd like to see the same thing for Typeable. John -- John Meacham - ⑆repetae.net⑆john⑈