resolving types
ast visitor
builtins
top down resolve