class A class B // kotlin.collections.Collection interface ICollection : Collection abstract class CCollection : Collection by emptyList() abstract class SCollection : Collection by emptyList() abstract class ACollection : Collection by emptyList() // kotlin.collections.Iterable interface IIterable : Iterable abstract class CIterable : Iterable by emptyList() abstract class SIterable : Iterable by emptyList() abstract class AIterable : Iterable by emptyList() // kotlin.collections.List interface IList : List abstract class CList : List by emptyList() abstract class SList : List by emptyList() abstract class AList : List by emptyList() // kotlin.collections.Set interface ISet : Set abstract class CSet : Set by emptySet() abstract class SSet : Set by emptySet() abstract class ASet : Set by emptySet() // kotlin.collections.Iterator interface IIterator : Iterator abstract class CIterator : Iterator by emptyList().iterator() abstract class SIterator : Iterator by emptyList().iterator() abstract class AIterator : Iterator by emptyList().iterator() // kotlin.collections.Map interface IMap : Map abstract class CMap : Map by emptyMap() abstract class SMap : Map by emptyMap() abstract class ABMap : Map by emptyMap() // kotlin.collections.Map.Entry interface IMapEntry : Map.Entry abstract class CMapEntry : Map.Entry by emptyMap().entries.first() abstract class SMapEntry : Map.Entry by emptyMap().entries.first() abstract class ABMapEntry : Map.Entry by emptyMap().entries.first()