Generics! Generics! Generics!

Generics Design Guidelines courtesy of Krzysztof Cwalina.