@Override
 public Op transform(OpPath opPath) {
   // Flatten down to triples where possible.
   PathBlock pattern = pathCompiler.reduce(opPath.getTriplePath());
   // Any generated paths of exactly one to triple; convert to Op.
   return PathLib.pathToTriples(pattern);
 }
 public void visit(OpPath opPath) {
   Table table = evaluator.pathPattern(opPath.getTriplePath());
   push(table);
 }
 @Override
 public Op transform(OpPath opPath) {
   return new OpPath(substitute(opPath.getTriplePath(), binding));
 }