Wed May 5 14:04:30 EDT 2010
Composition in the low-level rep
The Procedure.hs representation currently uses a recursive type for
PAbs, i.e. a PApp can invoke a PAbs directly. This might not be a
good idea as we probably just want to represent flat block structure
(one level of abstraction) and use target language name abstractions
(procedures or macros) for composition.
If a generator that produces PAbs structures needs macro expansion, it
should perform expansion in its higher level description.
Next: fix compileNodes such that the register naming is done more
explicitly. The problem is in compileNodes / envFold
*Main> compileNodes [0..] [var "a", var "a" + 1]
([a,r0],[(r0,(add a 1))])
This probably needs to use the Procedure.hs representation directly,
which would also hide the object equality unsafe property.