code: @Override
      @LogarithmicTime(amortized = true)
      public AddressableHeap.Handle<K, V> insert(K key, V value) {
          if (other != this) {
              throw new IllegalStateException("A heap cannot be used after a meld");
          }
          if (key == null) {
              throw new NullPointerException("Null keys not permitted");
          }
          Node<K, V> n = new Node<K, V>(this, key, value);
          if (comparator == null) {
              root = link(root, n);
          } else {
              root = linkWithComparator(root, n);
          }
          size++;
          return n;
      }
docs: {@inheritDoc}
  
  @throws IllegalStateException
  if the heap has already been used in the right hand side of a
  meld