On Thu, May 29, 2008 at 11:02 AM, Taral <[EMAIL PROTECTED]> wrote:

> On 5/28/08, Jason Dagit <[EMAIL PROTECTED]> wrote:
> > They are only identical up to strictness, and there they differ.
>
> How so? They are both strict in f, iox, ioy, no?


The short version is strict in iox and ioy because
Sealed x <- iox

is strict due to the pattern match.

At some point unseal was rewritten, I think by David, to not be lazy.  So
the part  "unseal seal `fmap`", does a lazy reseal, and the
unsafeInterleaveIO is meant to be there so that when we do the necessary
pattern match it doesn't cause all of iox to happen.

I can't recall why just:
Sealed x <- unsafeInterleaveIO iox

doesn't do the trick.

But, I do recall this being discussed, at least by David and myself, because
this change was the result of some change I made that was forcing the entire
repository to be read during some operations.

I hope that explains it better.

Jason
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users

Reply via email to