accept improper definition statement
fix unification for function application
wrap
drop support for generic function for now
generic function type-checks
commit before removing expand-app
generic function finally works