I think it would make sense to encapsulate the call to ``symbolAt`` and ``findMatchesOf`` in the ``SearchPresentationCompiler``. That way you are preventing improper usages on ``Symbol``. In fact, I think ``FoundSymbol`` should not escape the ``SearchPresentationCompiler`` class (i.e., it should be private). Also ``symbolAt`` should be private. Basically, you should make sure that compiler Symbols can't be leaked.