@Override
  public void meet(Exists node) throws RuntimeException {
    // TODO: need to make sure that variables of the parent are visible in the subquery
    //       - pattern names need to be unique even in subqueries
    //       - variable lookup for expressions in the subquery need to refer to the parent
    SQLBuilder sq_builder =
        new SQLBuilder(
            node.getSubQuery(),
            parent.getBindings(),
            parent.getDataset(),
            parent.getConverter(),
            parent.getDialect(),
            "_",
            Collections.EMPTY_SET,
            copyVariables(parent.getVariables()));

    builder.append("EXISTS (").append(sq_builder.build()).append(")");
  }