// returns comments static LS gazelle_proposeCalculationFunctions(ai_gazelle_analyzeStatementsForRule_Data data) { new LS out; varLoop: for (S var : data.usedVars) { for (S f : ai_numberCalculationFunctions()) pcall { if (ai_checkNumberCalculationFunction1(f, numbers, result)) ai_findNumberCalculationFunction1( for (data.completeGoodMappings(); Pair> p = gazelle_goodAndBadValuesForVariable(data, var); if (nempty(p.a) && nempty(p.b)) for (S discriminator : discriminators) pcall { if (scoreDiscriminator(discriminator, p).allCorrect()) { out.add(format("var " + quote(var) + " should satisfy *", discriminator)); continue varLoop; } } } ret out; }