private void merge(int insn, Frame<V> frame) throws AnalyzerException {
    Frame<V> oldFrame = frames[insn];
    boolean changes;

    if (oldFrame == null) {
      frames[insn] = new Frame<>(frame);
      changes = true;
    }
    else {
      changes = oldFrame.merge(frame, interpreter);
    }
    if (changes && !queued[insn]) {
      queued[insn] = true;
      queue[top++] = insn;
    }
  }
private void merge(int insn, Frame<V> frame)