@dirkgr noticed that the use of mypy_extensions.KwArg [here](https://github.com/allenai/catwalk/blob/main/catwalk/task.py#L64) could instead make use of typing.Protocol as in [here](https://github.com/allenai/catwalk/blob/733244a5e57289c3d03861ad6ab183d123e8f391/catwalk/models/eleuther.py#L64). This may allow us to support python >= 3.8. See [this SO post](https://stackoverflow.com/a/65564936) for a quick example.