Unless you really are requiring that TEventArgs must be either EventArgs or something derived from EventArgs. (Maybe you are?)
I am.
You may be able to do this: alias Event!() Event; But I don't know if that would result in a naming conflict.
It does.