run the compiler in two passes
move some more logic to the code generator
allow aliases on child defs