Make sure generic parameter types are propagated properly without downgrading to the unconstructed type