The Perfect Match: Generics in Interfaces