package foo;

/**
 * public abstract interface foo/InterfaceWithDefaults<T#0 (* T *)> : kotlin/Any {
 *
 *   // signature: foo()V
 *   public open fun foo(): kotlin/Unit
 *
 *   // nested class: Nested
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
public abstract interface InterfaceWithDefaults<T extends java.lang.Object> extends Error1, Error2 {

    public abstract void foo();

    /**
     * synthetic class
     */
    @kotlin.Metadata()
    public static final class DefaultImpls {

        public static <T extends java.lang.Object>void foo(@org.jetbrains.annotations.NotNull()
        foo.InterfaceWithDefaults<T> $this) {
        }
    }

    /**
     * public abstract interface foo/InterfaceWithDefaults.Nested<T#1 (* S *)> : kotlin/Any {
     *
     *   // signature: bar()V
     *   public open fun bar(): kotlin/Unit
     *
     *   // module name: main
     * }
     */
    @kotlin.Metadata()
    public static abstract interface Nested<S extends java.lang.Object> extends Error1, Error2 {

        public abstract void bar();

        /**
         * synthetic class
         */
        @kotlin.Metadata()
        public static final class DefaultImpls {

            public static <S extends java.lang.Object>void bar(@org.jetbrains.annotations.NotNull()
            foo.InterfaceWithDefaults.Nested<S> $this) {
            }
        }
    }
}

////////////////////

package foo;

/**
 * public abstract interface foo/SubInterface<T#0 (* T *)> : foo/InterfaceWithDefaults<T#0> {
 *
 *   // module name: main
 * }
 */
@kotlin.Metadata()
public abstract interface SubInterface<T extends java.lang.Object> extends foo.InterfaceWithDefaults<T> {

    /**
     * synthetic class
     */
    @kotlin.Metadata()
    public static final class DefaultImpls {

        public static <T extends java.lang.Object>void foo(@org.jetbrains.annotations.NotNull()
        foo.SubInterface<T> $this) {
        }
    }
}
