Давайте посмотрим, что это означает на простом английском языке.
class A[X]
означает: пусть A будет классом, который принимает один параметр типа.
class C[M[X] <: A[X]]
означает: пусть C будет классомкоторый принимает один параметр типа, который должен быть классом, который принимает один параметр типа И, параметризованный, является подклассом класса А, параметризованного с тем же типом.
Когда вы пишете
new C[A]
Вы говорите: создайте экземпляр C с параметром A.Соответствует ли A критериям, указанным выше?Да, это класс, который принимает один параметр типа, а параметризованный это подкласс самого параметризованного.
Однако, когда вы пишете
new C[A[Int]]
параметр типа, который вы пытаетесь датьC, [Int], не соответствует критериям: A [Int] не принимает никаких типов параметров, которые любезно сообщит вам компилятор.(И это также не подкласс A [X].)