private void printInstances(Instance[] solutions, IPrologTermOutput pto) { pto.openList(); for (final Instance instance : solutions) { if (instance != null) { pto.openList(); for (int i = 0; i < variables.length; i++) { final RelationInfo relinfo = variables[i]; final TupleSet tupleSet = instance.tuples(relinfo.getRelation()); final TupleType tupleType = relinfo.getTupleType(); pto.openTerm(tupleType.isSingleton() ? "b" : "s"); pto.printAtom(relinfo.getId()); if (tupleType.isSingleton()) { final Tuple tuple = tupleSet.isEmpty() ? null : tupleSet.iterator().next(); writeTuple(pto, tupleType, tupleSet, tuple); } else { pto.openList(); writeTupleSet(pto, tupleType, tupleSet); pto.closeList(); } pto.closeTerm(); } pto.closeList(); } } pto.closeList(); }