TypeDoc adds scopes to the individual nodes. Instead of doing this, I believe we should generate the scopes as we iterate through nodes, pushing symbol tables and popping symbol tables onto a scope stack and passing that into the type checking functions