crush functions into new/on, and validate positions of new/on.
cleanup type names a little. save positions.
refactoring: compound types and named parameters are the same thing.