RE: A question about the "awkward squad"

On 04 December 2004 04:27, Judah Jacobson wrote:
What exactly are redex's, in this context,
Any expression which can be beta-reduced or case-reduced.
and is it (still?) true that GHC never expands them?
I'm not sure if GHC guarantees never to duplicate a redex, Simon PJ might know.
Or are there certain types of redex's that aren't? Or is it just really complicated? :-) For example, if I understand this right, does it mean that in the classic top-level unsafePerformIO+NOINLINE hack, the NOINLINE is actually unnecessary in some or all cases?
Probably, yes. The reason being that currently unsafePeformIO itself is marked NOINLINE, so GHC can't see its definition, so it won't ever duplicate an expression of the form (unsafePerformIO e) because that would duplicate an unbounded amount of work. The NOINLINE pragma is useful documentation, though. Cheers, Simon
participants (1)
-
Simon Marlow