Suppose we have a generic interface:
Theoretically this interface can be implemented by any class:
The question is: how do we restrict the interface usage so that the generic parameter can only match the class the interface is implemented on?
Specifically, this should be valid:
and this should not compile: