code: private void updateInitSignature(int idx, State<O> succ, O out) {
          StateSignature<O> sig = init.getSignature();
          State<O> oldSucc = sig.successors.array[idx];
          if (oldSucc == succ && Objects.equals(out, sig.outputs.array[idx])) {
              return;
          }
          if (oldSucc != null) {
              oldSucc.decreaseIncoming();
          }
          sig.successors.array[idx] = succ;
          sig.outputs.array[idx] = out;
          succ.increaseIncoming();
      }
docs: Updates the signature of the initial state, changing both the successor state and the output symbol.
  
  @param idx
  the transition index to change
  @param succ
  the new successor state
  @param out
  the output symbol