FILE fqName:<root> fileName:/main.kt
  CLASS CLASS name:SubList modality:ABSTRACT visibility:public superTypes:[<root>.MyList<F of <root>.SubList>]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.SubList<F of <root>.SubList>
    TYPE_PARAMETER name:F index:0 variance: superTypes:[kotlin.Any?] reified:false
    CONSTRUCTOR visibility:public returnType:<root>.SubList<F of <root>.SubList> [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyList'
          TYPE_ARG E: F of <root>.SubList
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:SubList modality:ABSTRACT visibility:public superTypes:[<root>.MyList<F of <root>.SubList>]' type=kotlin.Unit
    FUN FAKE_OVERRIDE name:add visibility:public modality:ABSTRACT returnType:kotlin.Unit [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.MutableList<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:index index:1 type:kotlin.Int
      VALUE_PARAMETER kind:Regular name:element index:2 type:@[FlexibleNullability] F of <root>.SubList?
      overridden:
        public abstract fun add (index: kotlin.Int, element: @[FlexibleNullability] E of <root>.MyList?): kotlin.Unit declared in <root>.MyList
    FUN FAKE_OVERRIDE name:add visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:java.util.AbstractCollection<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:p0 index:1 type:@[FlexibleNullability] F of <root>.SubList?
      overridden:
        public open fun add (p0: @[FlexibleNullability] E of <root>.MyList?): kotlin.Boolean declared in <root>.MyList
    FUN FAKE_OVERRIDE name:addAll visibility:public modality:ABSTRACT returnType:kotlin.Boolean [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.MutableList<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:index index:1 type:kotlin.Int
      VALUE_PARAMETER kind:Regular name:elements index:2 type:kotlin.collections.Collection<@[FlexibleNullability] F of <root>.SubList?>
      annotations:
        IgnorableReturnValue
      overridden:
        public abstract fun addAll (index: kotlin.Int, elements: kotlin.collections.Collection<@[FlexibleNullability] E of <root>.MyList?>): kotlin.Boolean declared in <root>.MyList
    FUN FAKE_OVERRIDE name:addAll visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:java.util.AbstractCollection<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:p0 index:1 type:@[EnhancedNullability] kotlin.collections.Collection<out @[FlexibleNullability] F of <root>.SubList?>
      overridden:
        public open fun addAll (p0: @[EnhancedNullability] kotlin.collections.Collection<out @[FlexibleNullability] E of <root>.MyList?>): kotlin.Boolean declared in <root>.MyList
    FUN FAKE_OVERRIDE name:clear visibility:public modality:OPEN returnType:kotlin.Unit [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:java.util.AbstractCollection<@[FlexibleNullability] F of <root>.SubList?>
      overridden:
        public open fun clear (): kotlin.Unit declared in <root>.MyList
    FUN FAKE_OVERRIDE name:contains visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:java.util.AbstractCollection<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:p0 index:1 type:@[FlexibleNullability] F of <root>.SubList?
      overridden:
        public open fun contains (p0: @[FlexibleNullability] E of <root>.MyList?): kotlin.Boolean declared in <root>.MyList
    FUN FAKE_OVERRIDE name:containsAll visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:java.util.AbstractCollection<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:p0 index:1 type:kotlin.collections.Collection<@[FlexibleNullability] F of <root>.SubList?>
      overridden:
        public open fun containsAll (p0: kotlin.collections.Collection<@[FlexibleNullability] E of <root>.MyList?>): kotlin.Boolean declared in <root>.MyList
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.MyList
    FUN FAKE_OVERRIDE name:forEach visibility:public modality:OPEN returnType:kotlin.Unit [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.Iterable<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:p0 index:1 type:@[FlexibleNullability] java.util.function.Consumer<in @[FlexibleNullability] F of <root>.SubList?>?
      overridden:
        public open fun forEach (p0: @[FlexibleNullability] java.util.function.Consumer<in @[FlexibleNullability] E of <root>.MyList?>?): kotlin.Unit declared in <root>.MyList
    FUN FAKE_OVERRIDE name:get visibility:public modality:ABSTRACT returnType:@[FlexibleNullability] F of <root>.SubList? [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.List<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:index index:1 type:kotlin.Int
      overridden:
        public abstract fun get (index: kotlin.Int): @[FlexibleNullability] E of <root>.MyList? declared in <root>.MyList
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun hashCode (): kotlin.Int declared in <root>.MyList
    FUN FAKE_OVERRIDE name:indexOf visibility:public modality:ABSTRACT returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.List<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:element index:1 type:@[FlexibleNullability] F of <root>.SubList?
      overridden:
        public abstract fun indexOf (element: @[FlexibleNullability] E of <root>.MyList?): kotlin.Int declared in <root>.MyList
    FUN FAKE_OVERRIDE name:isEmpty visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:java.util.AbstractCollection<@[FlexibleNullability] F of <root>.SubList?>
      overridden:
        public open fun isEmpty (): kotlin.Boolean declared in <root>.MyList
    FUN FAKE_OVERRIDE name:iterator visibility:public modality:ABSTRACT returnType:@[EnhancedNullability] kotlin.collections.MutableIterator<@[FlexibleNullability] F of <root>.SubList?> [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:java.util.AbstractCollection<@[FlexibleNullability] F of <root>.SubList?>
      overridden:
        public abstract fun iterator (): @[EnhancedNullability] kotlin.collections.MutableIterator<@[FlexibleNullability] E of <root>.MyList?> declared in <root>.MyList
    FUN FAKE_OVERRIDE name:lastIndexOf visibility:public modality:ABSTRACT returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.List<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:element index:1 type:@[FlexibleNullability] F of <root>.SubList?
      overridden:
        public abstract fun lastIndexOf (element: @[FlexibleNullability] E of <root>.MyList?): kotlin.Int declared in <root>.MyList
    FUN FAKE_OVERRIDE name:length visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.MyList<F of <root>.SubList>
      overridden:
        public open fun length (): kotlin.Int declared in <root>.MyList
    FUN FAKE_OVERRIDE name:listIterator visibility:public modality:ABSTRACT returnType:kotlin.collections.MutableListIterator<@[FlexibleNullability] F of <root>.SubList?> [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.MutableList<@[FlexibleNullability] F of <root>.SubList?>
      overridden:
        public abstract fun listIterator (): kotlin.collections.MutableListIterator<@[FlexibleNullability] E of <root>.MyList?> declared in <root>.MyList
    FUN FAKE_OVERRIDE name:listIterator visibility:public modality:ABSTRACT returnType:kotlin.collections.MutableListIterator<@[FlexibleNullability] F of <root>.SubList?> [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.MutableList<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:index index:1 type:kotlin.Int
      overridden:
        public abstract fun listIterator (index: kotlin.Int): kotlin.collections.MutableListIterator<@[FlexibleNullability] E of <root>.MyList?> declared in <root>.MyList
    FUN FAKE_OVERRIDE name:parallelStream visibility:public modality:OPEN returnType:@[EnhancedNullability] java.util.stream.Stream<@[FlexibleNullability] @[EnhancedNullability] F of <root>.SubList?> [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.Collection<@[FlexibleNullability] F of <root>.SubList?>
      overridden:
        public open fun parallelStream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] @[FlexibleNullability] E of <root>.MyList?> declared in <root>.MyList
    FUN FAKE_OVERRIDE name:remove visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:java.util.AbstractCollection<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:p0 index:1 type:@[FlexibleNullability] F of <root>.SubList?
      overridden:
        public open fun remove (p0: @[FlexibleNullability] E of <root>.MyList?): kotlin.Boolean declared in <root>.MyList
    FUN FAKE_OVERRIDE name:removeAll visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:java.util.AbstractCollection<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:p0 index:1 type:kotlin.collections.Collection<@[FlexibleNullability] F of <root>.SubList?>
      overridden:
        public open fun removeAll (p0: kotlin.collections.Collection<@[FlexibleNullability] E of <root>.MyList?>): kotlin.Boolean declared in <root>.MyList
    FUN FAKE_OVERRIDE name:removeAt visibility:public modality:ABSTRACT returnType:@[FlexibleNullability] F of <root>.SubList? [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.MutableList<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:index index:1 type:kotlin.Int
      annotations:
        IgnorableReturnValue
      overridden:
        public abstract fun removeAt (index: kotlin.Int): @[FlexibleNullability] E of <root>.MyList? declared in <root>.MyList
    FUN FAKE_OVERRIDE name:removeIf visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.MutableCollection<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:p0 index:1 type:@[EnhancedNullability] java.util.function.Predicate<in @[FlexibleNullability] @[EnhancedNullability] F of <root>.SubList?>
      overridden:
        public open fun removeIf (p0: @[EnhancedNullability] java.util.function.Predicate<in @[EnhancedNullability] @[FlexibleNullability] E of <root>.MyList?>): kotlin.Boolean declared in <root>.MyList
    FUN FAKE_OVERRIDE name:replaceAll visibility:public modality:OPEN returnType:kotlin.Unit [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.MutableList<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:p0 index:1 type:@[EnhancedNullability] java.util.function.UnaryOperator<@[FlexibleNullability] @[EnhancedNullability] F of <root>.SubList?>
      overridden:
        public open fun replaceAll (p0: @[EnhancedNullability] java.util.function.UnaryOperator<@[EnhancedNullability] @[FlexibleNullability] E of <root>.MyList?>): kotlin.Unit declared in <root>.MyList
    FUN FAKE_OVERRIDE name:retainAll visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:java.util.AbstractCollection<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:p0 index:1 type:kotlin.collections.Collection<@[FlexibleNullability] F of <root>.SubList?>
      overridden:
        public open fun retainAll (p0: kotlin.collections.Collection<@[FlexibleNullability] E of <root>.MyList?>): kotlin.Boolean declared in <root>.MyList
    FUN FAKE_OVERRIDE name:set visibility:public modality:ABSTRACT returnType:@[FlexibleNullability] F of <root>.SubList? [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.MutableList<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:index index:1 type:kotlin.Int
      VALUE_PARAMETER kind:Regular name:element index:2 type:@[FlexibleNullability] F of <root>.SubList?
      annotations:
        IgnorableReturnValue
      overridden:
        public abstract fun set (index: kotlin.Int, element: @[FlexibleNullability] E of <root>.MyList?): @[FlexibleNullability] E of <root>.MyList? declared in <root>.MyList
    FUN FAKE_OVERRIDE name:sort visibility:public modality:OPEN returnType:kotlin.Unit [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.MutableList<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:p0 index:1 type:@[FlexibleNullability] java.util.Comparator<in @[FlexibleNullability] F of <root>.SubList?>?
      overridden:
        public open fun sort (p0: @[FlexibleNullability] java.util.Comparator<in @[FlexibleNullability] E of <root>.MyList?>?): kotlin.Unit declared in <root>.MyList
    FUN FAKE_OVERRIDE name:spliterator visibility:public modality:OPEN returnType:@[EnhancedNullability] java.util.Spliterator<@[FlexibleNullability] F of <root>.SubList?> [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.Collection<@[FlexibleNullability] F of <root>.SubList?>
      overridden:
        public open fun spliterator (): @[EnhancedNullability] java.util.Spliterator<@[FlexibleNullability] E of <root>.MyList?> declared in <root>.MyList
    FUN FAKE_OVERRIDE name:stream visibility:public modality:OPEN returnType:@[EnhancedNullability] java.util.stream.Stream<@[FlexibleNullability] @[EnhancedNullability] F of <root>.SubList?> [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.Collection<@[FlexibleNullability] F of <root>.SubList?>
      overridden:
        public open fun stream (): @[EnhancedNullability] java.util.stream.Stream<@[EnhancedNullability] @[FlexibleNullability] E of <root>.MyList?> declared in <root>.MyList
    FUN FAKE_OVERRIDE name:subList visibility:public modality:ABSTRACT returnType:kotlin.collections.MutableList<@[FlexibleNullability] F of <root>.SubList?> [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.collections.MutableList<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:fromIndex index:1 type:kotlin.Int
      VALUE_PARAMETER kind:Regular name:toIndex index:2 type:kotlin.Int
      overridden:
        public abstract fun subList (fromIndex: kotlin.Int, toIndex: kotlin.Int): kotlin.collections.MutableList<@[FlexibleNullability] E of <root>.MyList?> declared in <root>.MyList
    FUN FAKE_OVERRIDE name:toArray visibility:public modality:OPEN returnType:@[FlexibleNullability] @[FlexibleArrayElementVariance] kotlin.Array<out @[FlexibleNullability] kotlin.Any?>? [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:java.util.AbstractCollection<@[FlexibleNullability] F of <root>.SubList?>
      overridden:
        public open fun toArray (): @[FlexibleNullability] @[FlexibleArrayElementVariance] kotlin.Array<out @[FlexibleNullability] kotlin.Any?>? declared in <root>.MyList
    FUN FAKE_OVERRIDE name:toArray visibility:public modality:OPEN returnType:@[FlexibleNullability] @[FlexibleArrayElementVariance] kotlin.Array<out @[FlexibleNullability] T of <root>.SubList.toArray?>? [fake_override]
      TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:java.util.AbstractCollection<@[FlexibleNullability] F of <root>.SubList?>
      VALUE_PARAMETER kind:Regular name:p0 index:1 type:@[FlexibleNullability] @[FlexibleArrayElementVariance] kotlin.Array<out @[FlexibleNullability] T of <root>.SubList.toArray?>?
      overridden:
        public open fun toArray <T> (p0: @[FlexibleNullability] @[FlexibleArrayElementVariance] kotlin.Array<out @[FlexibleNullability] T of <root>.MyList.toArray?>?): @[FlexibleNullability] @[FlexibleArrayElementVariance] kotlin.Array<out @[FlexibleNullability] T of <root>.MyList.toArray?>? declared in <root>.MyList
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:@[EnhancedNullability] kotlin.String [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:java.util.AbstractCollection<@[FlexibleNullability] F of <root>.SubList?>
      overridden:
        public open fun toString (): @[EnhancedNullability] kotlin.String declared in <root>.MyList
    PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
      overridden:
        public open size: kotlin.Int declared in <root>.MyList
      FUN FAKE_OVERRIDE name:<get-size> visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
        VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.MyList<F of <root>.SubList>
        annotations:
          Override
        correspondingProperty: PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
        overridden:
          public open fun <get-size> (): kotlin.Int declared in <root>.MyList
  FUN name:foo visibility:public modality:FINAL returnType:kotlin.Unit
    VALUE_PARAMETER kind:Regular name:list1 index:0 type:<root>.MyList<kotlin.Any>
    VALUE_PARAMETER kind:Regular name:list2 index:1 type:<root>.SubList<kotlin.Any>
    BLOCK_BODY
      TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
        CALL 'public open fun length (): kotlin.Int declared in <root>.MyList' type=kotlin.Int origin=null
          ARG <this>: GET_VAR 'list1: <root>.MyList<kotlin.Any> declared in <root>.foo' type=<root>.MyList<kotlin.Any> origin=null
      TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
        CALL 'public open fun length (): kotlin.Int declared in <root>.SubList' type=kotlin.Int origin=null
          ARG <this>: GET_VAR 'list2: <root>.SubList<kotlin.Any> declared in <root>.foo' type=<root>.SubList<kotlin.Any> origin=null
