Thu Jun 11 10:48:02 CEST 2009
Let's factor it out a bit: computations don't need to be executed
during resolution phase.
1. BIND (construct the network)
2. RESOLVE (find a workable serialization)
3. EXECUTE (run the serialized program as a function)
More specificially: primitives only need to be defined up to signature
(number of in/out).
Ok. I've simplified it a bit and come to the conclusiong that the
composition mechanism should yield scheme functions (thus serialize
Also, the dependency resolution is now separated from computation so
it can in principle be done at expansion time. This poses an
interesting problem however: the syntax uses scheme's lexical variable
binding, but at expansion time this isn't available yet. So syntax
should be lifted to a next stage.
I ran into this pattern before. There is probably something
interesting hidden here.