On Mon, Jun 29, 2009 at 11:30 PM, Ryan Ingram<[email protected]> wrote:
> There can't be a way to do so that is pure, because such a function
> could distinguish between
>> xs1 = () : xs1
> and
>> xs2 = f () where f () = () : f ()
>

But doesn't seq and friends cause many of our normal referential
transparency guarantees to be invalid?  Are you certain that claim
holds in the presence of seq?

As a side note, (allowing seq and unsafePerformIO if necessary) is it
possible to implement a map that preserves cycles (instead of
transparently replacing them with infinite copies?  Not horribly
useful, but would be quite cute.

AHH
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to