interface IBStack extends IStackWithOptions {
// record an undoable action for backtracking
void addUndo aka temp(AutoCloseable undo);
// initiate a backtrack
IBStack backtrack();
// get next result of computation
A nextResult();
A nextResultWithPrintStruct(long maxSteps);
}