code: @Override
      public boolean advance() {
          if (currentMutation != NON_MUTATION_1) { // Prevents invocation on the first execution of the method
  
              // This will be executed starting from the second call of the advance() method
              if (currentMutation != NON_MUTATION) {
                  switch (Mutation.getRawTypeCode(currentMutation)) {
                      case RAW_MUTATION_TYPE_SUBSTITUTION:
                          ++seq1Position;
                          ++seq2Position;
                          break;
  
                      case RAW_MUTATION_TYPE_DELETION:
                          ++seq1Position;
                          break;
  
                      case RAW_MUTATION_TYPE_INSERTION:
                          ++seq2Position;
                          break;
                  }
                  ++mutationsPointer;
              } else {
                  ++seq1Position;
                  ++seq2Position;
              }
  
          }
  
          // Setting current state
          currentMutation = mutationsPointer < mutations.size() &&
                  mutations.getPositionByIndex(mutationsPointer) == seq1Position ? mutations.getMutation(mutationsPointer) :
                  NON_MUTATION;
  
          return seq1Position < seq1To || currentMutation != NON_MUTATION;
      }
docs: Advance to the next alignment position
  
  @return {@literal true} if iteration successful; {@literal false} if iteration ended