static BigInt combinationsForPositionalParser(int positions, IF1> skipsFromPosition, O... _) { optPar bool debug; Map combinationsFromPosition = autoTreeMap(() -> bigint(1)); for (int i = positions-1; i >= 0; i--) { BigInt combinations = bigint(0); fOr (int skip : skipsFromPosition.get(i)) combinations = plus(combinations, combinationsFromPosition.get(i+skip)); if (debug) print("Combinations from " + i + ": " + combinations); combinationsFromPosition.put(i, combinations); } ret combinationsFromPosition.get(0); }