Implement Generics Type System