Isn't type to be replaced always a type parameter?