Rewrite `predecessors` to not use :preceding

Haven't removed :preceding yet to not break all tests, but this is the
goal. The new representation will be just the adjacency list in :
adjacent.