Wed Aug 26 15:47:04 CEST 2009
PF: Linear code composition with `compose'
The `>lcode' word _projects_ linear code and nonlinear code to linear
The `abstract' word _wraps_ any atom as linear code.
The `lcompose' word takes two linear code words and composes them.
The `compose' word takes two elements on the stack, projects them to
linear code using `>lcode', and composes them with `lcompose'.
The `pa' word takes two elements on the stack, converts the first one
using `abstract' and the second one using `>lcode', and composes the
resulting linear code with `lcompose'.
A partial continuation obtained using `shift' and `reset' is
represented as linear code. A full continuation obtained from
`call/cc' is currently implemented as a partial continuation that
ignores continuation marks inserted by `reset'. The `run' word and
with it all combinators take both linear and nonlinear code.
They do _not_ take data however. In that light I'm still not
convinced that `>lcode' should automatically convert data to code.
There is probably need for an `>ldata' word too.
Anything that represents code can be passed to `compose' to
yield a code quotation that can be passed to `run' and higher