> the generic type parameters of newTestType are not distinct
They are unified at the type level in `TestType`. The (inferred) type is still `int or string` . Within `newTestType` , terms become available and obviously, type resolution happens at the term level. If this is intended or not might to be seen.
