public class EtendingMutableInterfaces { public static class Lists { public static class ExtendIList1 implements IMutableList { } public static class ExtendIList2 implements IMutableList { } // Compiler bug causes remove(int) to clash https://youtrack.jetbrains.com/issue/KT-17782 //public static class ExtendCList1 extends CMutableList { // //} // //public static class ExtendCList2 extends CMutableList { // //} public static class ExtendSList extends SMutableList { } public static class ExtendAList extends AMutableList { } } public static class Collections { public static class ExtendICollection1 implements IMutableCollection { } public static class ExtendICollection2 implements IMutableCollection { } public static class ExtendCCollection1 extends CMutableCollection { } public static class ExtendCCollection2 extends CMutableCollection { } public static class ExtendSCollection extends SMutableCollection { } public static class ExtendACollection extends AMutableCollection { } } public static class Sets { public static class ExtendISet1 implements IMutableSet { } public static class ExtendISet2 implements IMutableSet { } public static class ExtendCSet1 extends CMutableSet { } public static class ExtendCSet2 extends CMutableSet { } public static class ExtendSSet extends SMutableSet { } public static class ExtendASet extends AMutableSet { } } public static class Iterables { public static class ExtendIIterable1 implements IMutableIterable { } public static class ExtendIIterable2 implements IMutableIterable { } public static class ExtendCIterable1 extends CMutableIterable { } public static class ExtendCIterable2 extends CMutableIterable { } public static class ExtendSIterable extends SMutableIterable { } public static class ExtendAIterable extends AMutableIterable { } } public static class Iterators { public static class ExtendIIterator1 implements IMutableIterator { } public static class ExtendIIterator2 implements IMutableIterator { } public static class ExtendCIterator1 extends CMutableIterator { } public static class ExtendCIterator2 extends CMutableIterator { } public static class ExtendSIterator extends SMutableIterator { } public static class ExtendAIterator extends AMutableIterator { } } public static class Maps { public static class ExtendIMap1 implements IMutableMap { } public static class ExtendIMap2 implements IMutableMap { } public static class ExtendCMap1 extends CMutableMap { } public static class ExtendCMap2 extends CMutableMap { } // NOTE: looks like a bug in compiler see KT-17738 //public static class ExtendSMap extends SMutableMap { // //} // //public static class ExtendABMap extends ABMutableMap { // //} } public static class MapEntrys { public static class ExtendIMapEntry1 implements IMutableMapEntry { } public static class ExtendIMapEntry2 implements IMutableMapEntry { } public static class ExtendCMapEntry1 extends CMutableMapEntry { } public static class ExtendCMapEntry2 extends CMutableMapEntry { } public static class ExtendSMapEntry extends SMutableMapEntry { } public static class ExtendAMapEntry extends ABMutableMapEntry { } } }