private static IntList @NotNull [] getBackwardTraces(@NotNull List<? extends Instruction> instructions) {
    final IntList[] states = new IntList[instructions.size()];
    for (int i = 0; i < states.length; i++) {
      states[i] = new IntArrayList();
    }

    for (int i = 0; i < instructions.size(); i++) {
      final Instruction instruction = instructions.get(i);
      for (int j = 0; j != instruction.nNext(); ++ j) {
        final int next = instruction.getNext(i, j);
        if (next < states.length) {
          states[next].add(i);
        }
      }
    }
    return states;
  }
private static IntList @NotNull [] getBackwardTraces(@NotNull List<? extends Instruction> instructions)