Quick question re RULES

Simon Peyton-Jones [email protected]
Thu, 2 Nov 2000 00:18:45 -0800


| PrelBase contains the appended code.  Am I correct in
| assuming that the stuff is structured as it is, because the
| "map" rule first `breaks' the map `open', which exposes it
| to the various foldr/build rules, and if no foldr/build rule
| matches, the "mapList" rule `closes' it again in a later
| phase of optimisation - after build was inlined?  If so, it
| seems like the whole thing depends a bit on the timing of
| the various optimsations (the map might be closed again
| before any of the foldr/build rules fires).  Is this maybe
| the reason that build has an INLINE 2 pragma, which delays
| its inlining, and thus, the closing of the map?

That's exactly it.

| All very cunning, it seems ;-)

A bit too cunning for comfort.  I wish I could think of a better
way to expose map's impl using build without paying a price
for doing so if it turns out not to fuse with anything.  But so
far I've failed to do so.

Is this a propos of your new transformations for parallelism?

Simon