Dear all,

The function mkWWcpr_help, which creates a wrapper and a worker after
strictness analysis, has a special case when there is a single result of
unlifted type:

Wrapper:     case (..call worker..) of x -> C x
Worker:      case (   ..body..    ) of C x -> x

But I don't understand how it is different from using (# #) as would result
from the general case:

Wrapper:     case (..call worker..) of (# x #) -> C x
Worker:      case (   ..body..    ) of C x -> (# x #)

That is, my understanding of the latter is that it would yield the exact
same code. I'm obviously missing something, I'd love to know what.

Best,
Arnaud
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to