add initial type analysis and AST annotations. rework function var decl/use checks