TYP: follow-up to #37723
- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] passes `black pandas`
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

see https://mypy.readthedocs.io/en/stable/generics.html#declaring-decorators

we have `F` defined in pandas._typing for this purpose. > we have F defined in pandas._typing for this purpose.

```
pandas/core/nanops.py:400: error: Incompatible return value type (got "Callable[..., Any]", expected "F")  [return-value]
```

The functions being decorated dont all have the same signature, so the decorated func has `**kwargs` that the targets dont have need to use `return cast(F, new_func)`