Fri Apr 14 10:10:45 EDT 2017

Instantiation / refactoring engine

After separating some main ideas (2-pass compiler, protocol oriented
programming, the macro/code divide), it seems that there is a
significant difference between applicative programming and the linear
stack languages: it is much easier and almost arbitrary to introduce
abstraction points.

I.e. given a program (a b c), it can be written as (a (b c)) and ((a
b) c), wher the inner word groups are separately abstracted words.

Some forces that influence decisions here:
- abstracted words and phrases can re-use the same code storage
- words that are compiled in one unit can use optimization
- calls are more expensive to execute than inlined functions