В Kotlin у нас будет возможность создать «признак, который может потребовать расширения класса на стороне вызова», например
class Bar {}
trait T1 : Bar {}
class Foo : Bar, T1, T2, T3 {}
class Wrong : T1, T2 //error: Wrong should extend Bar
Я не могу представить какой-либо поток, где я могу применить эту структуру. Кто-нибудь может сказать мне, зачем нам это нужно?