С учетом следующих определений Scala
abstract class C {
type T1 <: { def m() : Int }
type T2 <: { def n() : Int }
}
есть ли способ определить третий тип в C, который ограничен подтипом как T1, так и T2? Э.Г.
type T3 <: T1 & T2 // does not compile
Мне кажется, что (частично) причина, по которой это не будет работать так, как написано, заключается в том, что я не могу быть уверен, что это не приведет к недопустимому ограничению (например, наследование от двух классов). Таким образом, связанный вопрос будет, если я смогу ограничить T1 и T2, чтобы это было законно, например, требуя, чтобы они оба были чертами.