static ai_gazelle_analyzeStatementsForRule_Data ai_gazelle_analyzeStatementsForRule_multiSet(MultiSet<S> l) {
  ai_gazelle_analyzeStatementsForRule_Data data = ai_gazelle_analyzeStatementsForRule(keys(l));
  data.statements = l;
  data.varScores = new Map;
  new Matches m;
  for (S s : keys(l))
    if "in a * mapping, variable * was mapped to *" {
      PairS p = pair($2, $3);
      PosNegScore score = getOrCreatePosNegScore(data.varScores, p);
      if (eq($1, 'good)) score.pos += l.get(s);
      else if (eq($1, 'bad)) score.neg += l.get(s);
    }
  
  ret data;
}