'Return all hits of the given lookup path.
I.e. a symbol table lookup across all files in the dirs of this
lib.
"lpath" is a lookup name list, e.g. [\'Casper\', \'Logging\']
or [\'dojo\', \'animation\'].
"ctlr" (optional) is an EvalController instance. If
specified it should be used in the normal way (logging,
checking .is_aborted()).
"curr_buf" (optional) is not relevant for StdLib. Used for
other *Lib classes.
A "hit" is (<CIX node>, <scope-ref>).  Each one represent a
scope-tag or variable-tag hit in all of the blobs for the
execution set buffers.
Returns the empty list if no hits.'

def hits_from_lpath(self, lpath, ctlr=None, curr_buf=None):

    assert isinstance(lpath, tuple)
    hits = []
    for blobnames_from_toplevelname in self.toplevelname_index.itervalues():
        for blobname in blobnames_from_toplevelname.get(lpath[0], ()):
            blob = self.get_blob(blobname)
            try:
                elem = blob
                for p in lpath:
                    elem = elem.names[p]
            except KeyError:
                continue
            hits.append((elem, (blob, list(lpath[:(-1)]))))
    return hits
