On Wed, Oct 19, 2011 at 12:21 PM, Gregory Collins <greg@gregorycollins.net> wrote:
On Wed, Oct 19, 2011 at 5:03 PM, Johan Tibell <johan.tibell@gmail.com> wrote:I'm almost certain you're wrong about this. The bang pattern on the
>
> It does. You need to use evaluate to have ensure actually be evaluated.
>
return from ensure (!r1 <- ensure $ ...) forces r1 to WHNF, which goes
through deepseq, and thus the whole list is forced. See
https://gist.github.com/1299380 for a short counterexample.