deeqSeq proposal

Andy Gill andy at
Thu Apr 6 03:06:53 EDT 2006

On Apr 5, 2006, at 4:51 PM, John Meacham wrote:

> On Wed, Apr 05, 2006 at 10:34:09AM -0500, Spencer Janssen wrote:
>> How about an implementation that sets the deepSeq'd bit *after* each
>> field has been successfully deepSeq'd?  deepSeq'ing a cyclic  
>> structure
>> would behave just like an infinite structure.
> what would be the point of having a bit then?

Because deepSeq's cost to evaluate a list that will eventually be  
required is linear.
The maximum number of deepSeq calls (and recursive calls) you can do  
over any
structure is simply the number of nodes.


   foldr (\ a as -> deepSeq (a : as)) [] $ some list

With the bit ==> one deepSeq per cons, then we hit the 'is-pre- 
deepSeqd' bit.
Without the bit ==> O(n^2)

> in any case, we should talk about the meaning of deepseqing something,
> not its implementation.
> depth limited recursive seq seems like the best route to me.
>         John
> -- 
> John Meacham - ⑆⑆john⑈
> _______________________________________________
> Haskell-prime mailing list
> Haskell-prime at

More information about the Haskell-prime mailing list