simonpj at microsoft.com
Tue Apr 11 09:01:47 EDT 2006
| Well, my worry was partly about the suggested version of deepSeq that
| would not diverge on circular structures (since circular structures
| are just one way to implement "infinite" data structures).
Dynamic idempotence is not the same as detecting circular structures.
Deepseqing a circular structure should definitely diverge, as it would
as if it was infinite. Idempotence changes the operational behaviour,
but not the denotational behaviour. So that part of the worry is ok.
But since the dynamic-idempotence operational behaviour is (as I
understand the proposal) the whole point, it's true that the
implementation would be constrained. In the same kind of way that we
expect call-by-need rather than call-by-name.
More information about the Haskell-prime