void () { reduce(); if (mySons.length > 0) { for (int i = 0; i < mySons.length; i++) { if (mySons[i] != null) { mySons[i].resolve(); if (!mySettings.exhaustive() && mySettings.cookToWildcards() && mySons[i].mySolutionFound) break; mySons[i] = null; } } } else { if (myConstraints.isEmpty()) { logSolution(); mySolutions.putSolution(myCurrentBinding); mySolutionFound = true; } } }