On 30 March 2006 23:12, Andy Gill wrote:

> Implementation:
> 
> deepSeq (RAW_CONS <is_deep_seq'd_bit> ... fields ) =
>      if <is_deep_seq'd_bit> == True
>          then return  /* hey, we've already deepSeq'd this */
>          else set <is_deep_seq'd_bit> to True.
>                   deepSeq (field_1)
>                   ...
>                   deepSeq (field_n)
> deepSEQ (REF/MVAR...) = return

So deepSeq doesn't return _|_ when passed a cyclic structure?  This is a
bad idea, because it lets you distinguish cyclic structures from
infinite ones.  deepSeq has to behave like a function, regardless of its
implementation.

Cheers,
        Simon
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://haskell.org/mailman/listinfo/haskell-prime

Reply via email to