code: private void delRef(final int root) {
      if (root < 2)
        return;
      if (root >= this.nodesize)
        throw new IllegalStateException("Cannot dereference a variable > varnum");
      if (this.low(root) == -1)
        throw new IllegalStateException("Cannot dereference variable -1");
      if (!this.hasref(root))
        throw new IllegalStateException("Cannot dereference a variable which has no reference");
      this.decRef(root);
    }
docs: Deletes a reference for a given node.
  @param root the node
  @throws IllegalArgumentException if the root node was invalid