ursus
sealed class Foo { abstract val a: String, abstract val b: String data class Bar(override val a: String, override val b: String) : Foo() data class Quax(override val a: String, override val b: String) : Foo() }