groostav
sealed class Base interface IFace class IImpl1: Base(), IFace class IImpl2: Base(), IFace class UnrelatedImpl3: Base() when(instance){ is Impl1, Impl2 -> { //instance smart-cast to IFace? } }