

$vau – the ultimate abstraction [pdf] - michaelsbradley
http://www.wpi.edu/Pubs/ETD/Available/etd-090110-124904/unrestricted/jshutt.pdf

======
tree_of_item
I'm conflicted about vau: on the one hand, it's the cleanest expression of the
"Lisp ideal" I've seen yet. Replacing special forms with fexprs makes
everything "first class", and lets the programmer mold the language any way
they see fit, without being boxed in by someone else's opinion of what
computing should look like.

On the other hand, it really spits in the face of any kind of static analysis.
Assigning types to vau based programs is going to be freakishly difficult if
not impossible in practice.

Some clever form of dynamic analysis/partial evaluation is going to be needed
if you want to regain the benefits of static languages, like type checking and
compilation. That's another PhD thesis or two, though...

