/**
 * public abstract interface Foo<T#0 (* X *), T#1 (* Y *)> : kotlin/Any {
 *
 *   // signature: foo(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 *   public open fun <T#2 (* Z *)> foo(x: T#0, y: T#1, z: T#2): kotlin/Unit
 *
 *   // getter: getX()I
 *   public open val x: kotlin/Int
 *     public open (* non-default *) get
 *
 *   // module name: main
 *
 *   // has method bodies in interface
 *
 *   // is compiled in compatibility mode
 * }
 */
@kotlin.Metadata()
public abstract interface Foo<X extends java.lang.Object, Y extends java.lang.Object> {

    public default <Z extends java.lang.Object>void foo(X x, Y y, Z z) {
    }

    public default int getX() {
        return 0;
    }

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

        @java.lang.Deprecated()
        public static <X extends java.lang.Object, Y extends java.lang.Object, Z extends java.lang.Object>void foo(@org.jetbrains.annotations.NotNull()
        Foo<X, Y> $this, X x, Y y, Z z) {
        }

        @java.lang.Deprecated()
        public static <X extends java.lang.Object, Y extends java.lang.Object>int getX(@org.jetbrains.annotations.NotNull()
        Foo<X, Y> $this) {
            return 0;
        }
    }
}
