progress += reduceByDirectTypes(prevFuncs, nextFuncs); if (progress == 0) { progress += reduceByAssignableTypes(prevFuncs, nextFuncs, false); if (progress == 0) { progress += reduceByAssignableTypes(prevFuncs, nextFuncs, true); if (progress == 0) { progress += reduceByPreferredTypes(prevFuncs, nextFuncs);