почему существуют разные обозначения для выражения наследования? В дженериках я должен использовать оператор <: - - в обычном наследовании классов я должен использовать ключевое слово extends.
Например, я должен написать это:
class X[A <: B] extends Y
Но почему бы не написать что-то вроде этого:
class X[A <: B] <: Y
или
class X[A extends B] extends Y // like Java
У меня нет проблем с текущей нотацией, но я хочу знать, есть ли причина по-другому обозначать иерархию типов обобщений.