Changing `sym || t.isType` to `t.hasSymbol || t.isType || sym` saves about 75% of the requests to the compiler (in the tests of the test suite). I'm wondering what would happen the whole traverser is moved into an `askOption` call. Would that solve the race condition or must every call to `symbol` be in its own `askOption`?