// returns pairs(rule, mapping) static LPair agiBlue_rules_gazelleZip(S input) { new LPair out; for (S rule : agiBlue_allRules()) { PairS p = splitAtDoubleArrow_pair(rule), continue if null; SS map = gazelle_zip(p.a, input), continue if null; out.add(pair(rule, mapKeysAndValues tok_deRoundOrCurlyBracket(map))); } ret out; }