Support multiple type parameters