Do you really need an explicit `Evt` template type? Can it not be derived automatically as `MessageEvent<M const>`?