template parameter, Generics and Templates