
I'm quite excited by this PEP, but I have one question: How to annotate decorators which can be applied both with options or not ? For example: ```python @my_dataclass # << Notice there is NO function call here class A: x: int @my_dataclass(frozen=True) class A: x: int ``` How should `my_dataclass` be annotated ? It's unclear to me. With the `Intersection` syntax, it would be some: ```python @typing.overload def my_dataclass( cls: None = ..., **options: Any, ) -> Callable[[_ClsT], _ClsT & Dataclass] ... @typing.overload def my_dataclass( cls: _ClsT, **options: Any, ) -> type[_ClsT & Dataclass] ... ``` This is how `dataclasses.dataclass`, `chex.dataclass`,... behave (can be applied as `@dataclass` or `@dataclass()`) I feel it would be nice to add an example in the PEP.