static BigInt combinationsForPositionalParser(int length, IF1> skipsFromPosition) { Map combinationsFromPosition = autoTreeMap(() -> bigint(1)); for (int i = positions-1; i >= 0; i--) { BigInt combinations = bigint(0); for (int skip : skipsFromPosition(i)) combinations = plus(combinations, combinationsFromPosition.get(i+skip)); combinationsFromPosition.put(i, combinations); } ret combinationsFromPosition.get(0); }