* Mutually recursive functions
* Refactor all tree visitors to prevent infinite recursion (maybe add decicated tree traversal functions & visitors?)
* Type identifier location + move types to ast library / split type values and type ast nodes
