@dragos  My findings so far

    val sym1 = pc.symbolAt(Location(unit, 45), cu).get
    val sym2 = pc.symbolAt(Location(unit, 82), cu).get
    assertEquals("a", sym1.nameString)
    assertEquals("a", sym2.nameString)
    assertEquals(sym1, sym2) // I know this is not stable, only works for the same pass of the file
    assertEquals(sym1, sym2.accessedOrSelf)

All of these assertions, except the last one, passes. The last one fails with 

    java.lang.AssertionError: expected:<value a> but was:<lazy value a>

So seems that using `accessedOrSelf` we get the underlying lazy value and not the accessor. But do we actually care about get the underlying value symbol? In this case (symbol comparison, not free-text search) we just care about comparing two symbols to see that one is a references to the other, so as long as we get the same symbol for each request we should be fine. Right?