Added generics awareness to the Type class, and added runtime support for this feature