library {
  // module name: <Classes.kt>

  library fragment {
    // package name: <root>

    // class name: A
    // class name: A.B
    // class name: A.B.C
    // class name: A.B.D
    // class name: A.E
    // class name: F
    // class name: FinalImpl
    // class name: Interface
    // class name: OpenImpl

    // signature: /A|null[0]
    public final class A : kotlin/Any {

      // signature: /A.<init>|<init>(){}[0]
      public constructor()

      // signature: /A.aFun|aFun(){}[0]
      public final fun aFun(): kotlin/Unit

      // signature: /A.aVal|{}aVal[0]
      public final val aVal: kotlin/Int /* = 0 */
        // signature: /A.aVal.<get-aVal>|<get-aVal>(){}[0]
        public final get

      // signature: /A.aVar|{}aVar[0]
      public final var aVar: kotlin/String
        // signature: /A.aVar.<get-aVar>|<get-aVar>(){}[0]
        public final get
        // signature: /A.aVar.<set-aVar>|<set-aVar>(kotlin.String){}[0]
        public final set

      // nested class: B

      // nested class: E
    }

    // signature: /A.B|null[0]
    public final inner class A.B : kotlin/Any {

      // signature: /A.B.<init>|<init>(){}[0]
      public constructor()

      // signature: /A.B.bFun|bFun(){}[0]
      public final fun bFun(): kotlin/Unit

      // signature: /A.B.bVal|{}bVal[0]
      public final val bVal: kotlin/Int /* = 0 */
        // signature: /A.B.bVal.<get-bVal>|<get-bVal>(){}[0]
        public final get

      // signature: /A.B.bVar|{}bVar[0]
      public final var bVar: kotlin/String
        // signature: /A.B.bVar.<get-bVar>|<get-bVar>(){}[0]
        public final get
        // signature: /A.B.bVar.<set-bVar>|<set-bVar>(kotlin.String){}[0]
        public final set

      // nested class: C

      // nested class: D
    }

    // signature: /A.B.C|null[0]
    public final inner class A.B.C : kotlin/Any {

      // signature: /A.B.C.<init>|<init>(){}[0]
      public constructor()

      // signature: /A.B.C.cFun|cFun(){}[0]
      public final fun cFun(): kotlin/Unit

      // signature: /A.B.C.cVal|{}cVal[0]
      public final val cVal: kotlin/Int /* = 0 */
        // signature: /A.B.C.cVal.<get-cVal>|<get-cVal>(){}[0]
        public final get

      // signature: /A.B.C.cVar|{}cVar[0]
      public final var cVar: kotlin/String
        // signature: /A.B.C.cVar.<get-cVar>|<get-cVar>(){}[0]
        public final get
        // signature: /A.B.C.cVar.<set-cVar>|<set-cVar>(kotlin.String){}[0]
        public final set
    }

    // signature: /A.B.D|null[0]
    private final inner class A.B.D : kotlin/Any {

      // signature: /A.B.D.<init>|<init>(){}[0]
      public constructor()

      // signature: /A.B.D.dFun|dFun(){}[0]
      public final fun dFun(): kotlin/Unit

      // signature: /A.B.D.dVal|{}dVal[0]
      public final val dVal: kotlin/Int /* = 0 */
        // signature: /A.B.D.dVal.<get-dVal>|<get-dVal>(){}[0]
        public final get

      // signature: /A.B.D.dVar|{}dVar[0]
      public final var dVar: kotlin/String
        // signature: /A.B.D.dVar.<get-dVar>|<get-dVar>(){}[0]
        public final get
        // signature: /A.B.D.dVar.<set-dVar>|<set-dVar>(kotlin.String){}[0]
        public final set
    }

    // signature: /A.E|null[0]
    public final class A.E : kotlin/Any {

      // signature: /A.E.<init>|<init>(){}[0]
      public constructor()

      // signature: /A.E.eFun|eFun(){}[0]
      public final fun eFun(): kotlin/Unit

      // signature: /A.E.eVal|{}eVal[0]
      public final val eVal: kotlin/Int /* = 0 */
        // signature: /A.E.eVal.<get-eVal>|<get-eVal>(){}[0]
        public final get

      // signature: /A.E.eVar|{}eVar[0]
      public final var eVar: kotlin/String
        // signature: /A.E.eVar.<get-eVar>|<get-eVar>(){}[0]
        public final get
        // signature: /A.E.eVar.<set-eVar>|<set-eVar>(kotlin.String){}[0]
        public final set
    }

    // signature: /F|null[0]
    public final data class F : kotlin/Any {

      // signature: /F.<init>|<init>(kotlin.Int;kotlin.String){}[0]
      public constructor(fVal: kotlin/Int, fVar: kotlin/String)

      // signature: /F.component1|component1(){}[0]
      public final /* synthesized */ operator fun component1(): kotlin/Int

      // signature: /F.component2|component2(){}[0]
      public final /* synthesized */ operator fun component2(): kotlin/String

      // signature: /F.copy|copy(kotlin.Int;kotlin.String){}[0]
      public final /* synthesized */ fun copy(fVal: kotlin/Int /* = ... */, fVar: kotlin/String /* = ... */): F

      // signature: /F.equals|equals(kotlin.Any?){}[0]
      public open /* synthesized */ operator fun equals(other: kotlin/Any?): kotlin/Boolean

      // signature: /F.fFun|fFun(){}[0]
      public final fun fFun(): kotlin/Unit

      // signature: /F.hashCode|hashCode(){}[0]
      public open /* synthesized */ fun hashCode(): kotlin/Int

      // signature: /F.toString|toString(){}[0]
      public open /* synthesized */ fun toString(): kotlin/String

      // signature: /F.fVal|{}fVal[0]
      public final val fVal: kotlin/Int
        // signature: /F.fVal.<get-fVal>|<get-fVal>(){}[0]
        public final get

      // signature: /F.fVar|{}fVar[0]
      public final var fVar: kotlin/String
        // signature: /F.fVar.<get-fVar>|<get-fVar>(){}[0]
        public final get
        // signature: /F.fVar.<set-fVar>|<set-fVar>(kotlin.String){}[0]
        public final set
    }

    // signature: /FinalImpl|null[0]
    public final class FinalImpl : OpenImpl {

      // signature: /FinalImpl.<init>|<init>(){}[0]
      public constructor()

      // signature: /FinalImpl.iFun|iFun(){}[0]
      public open fun iFun(): kotlin/Unit

      // signature: /FinalImpl.iVal|{}iVal[0]
      public open val iVal: kotlin/Int /* = 0 */
        // signature: /FinalImpl.iVal.<get-iVal>|<get-iVal>(){}[0]
        public open get

      // signature: /FinalImpl.iVar|{}iVar[0]
      public open var iVar: kotlin/String
        // signature: /FinalImpl.iVar.<get-iVar>|<get-iVar>(){}[0]
        public open get
        // signature: /FinalImpl.iVar.<set-iVar>|<set-iVar>(kotlin.String){}[0]
        public open set
    }

    // signature: /Interface|null[0]
    public abstract interface Interface : kotlin/Any {

      // signature: /Interface.iFun|iFun(){}[0]
      public abstract fun iFun(): kotlin/Unit

      // signature: /Interface.iVal|{}iVal[0]
      public abstract val iVal: kotlin/Int
        // signature: /Interface.iVal.<get-iVal>|<get-iVal>(){}[0]
        public abstract get

      // signature: /Interface.iVar|{}iVar[0]
      public abstract var iVar: kotlin/String
        // signature: /Interface.iVar.<get-iVar>|<get-iVar>(){}[0]
        public abstract get
        // signature: /Interface.iVar.<set-iVar>|<set-iVar>(kotlin.String){}[0]
        public abstract set
    }

    // signature: /OpenImpl|null[0]
    public open class OpenImpl : Interface {

      // signature: /OpenImpl.<init>|<init>(){}[0]
      public constructor()

      // signature: /OpenImpl.iFun|iFun(){}[0]
      public open fun iFun(): kotlin/Unit

      // signature: /OpenImpl.iVal|{}iVal[0]
      public open val iVal: kotlin/Int /* = 0 */
        // signature: /OpenImpl.iVal.<get-iVal>|<get-iVal>(){}[0]
        public open get

      // signature: /OpenImpl.iVar|{}iVar[0]
      public open var iVar: kotlin/String
        // signature: /OpenImpl.iVar.<get-iVar>|<get-iVar>(){}[0]
        public open get
        // signature: /OpenImpl.iVar.<set-iVar>|<set-iVar>(kotlin.String){}[0]
        public open set
    }
  }
}
