Better typing for copy/replace functions that operate on dataclasses

Would this need to be limited to dataclasses?
Couldn’t we have CallableKwargs[T] instead of DataclassKwargs[T], and then it could be used with any Callable (including dataclasses)?