@SuppressWarnings("unchecked")
  @Override
  public boolean remove(final Object key) {
    final boolean removed = delegate.remove(key);
    if (removed) {
      undoLog.add(UndoEntry.remove((V) key));
    }
    return removed;
  }
Create an UndoSet backed by another Set instance.

@param delegate The Set instance to use for backing storage
@param <V> The type of the collection.
@return an unduable set
evm/src/main/java/org/hyperledger/besu/collections/undo/UndoSet.java