namespace <root>

public open class A : java.lang.Object {
    public final /*constructor*/ fun <init>(): A
    protected open override /*1*/ fun clone(): jet.Any
    public open override /*1*/ fun equals(/*0*/ p0: jet.Any?): jet.Boolean
    protected open override /*1*/ fun finalize(): jet.Tuple0
    public final override /*1*/ fun getClass(): java.lang.Class<out jet.Any?>?
    public open override /*1*/ fun hashCode(): jet.Int
    public final override /*1*/ fun notify(): jet.Tuple0
    public final override /*1*/ fun notifyAll(): jet.Tuple0
    public open override /*1*/ fun toString(): jet.String?
    public final override /*1*/ fun wait(): jet.Tuple0
    public final override /*1*/ fun wait(/*0*/ p0: jet.Long): jet.Tuple0
    public final override /*1*/ fun wait(/*0*/ p0: jet.Long, /*1*/ p1: jet.Int): jet.Tuple0
}
public open class X</*0*/ T : jet.Any?> : java.lang.Object {
    public final /*constructor*/ fun </*0*/ T : jet.Any?><init>(): X<T>
    package open fun bar(/*0*/ a: T?): jet.Tuple0
    protected open override /*1*/ fun clone(): jet.Any
    public open override /*1*/ fun equals(/*0*/ p0: jet.Any?): jet.Boolean
    protected open override /*1*/ fun finalize(): jet.Tuple0
    package open fun foo(): T?
    public final override /*1*/ fun getClass(): java.lang.Class<out jet.Any?>?
    public open override /*1*/ fun hashCode(): jet.Int
    public final override /*1*/ fun notify(): jet.Tuple0
    public final override /*1*/ fun notifyAll(): jet.Tuple0
    public open override /*1*/ fun toString(): jet.String?
    public final override /*1*/ fun wait(): jet.Tuple0
    public final override /*1*/ fun wait(/*0*/ p0: jet.Long): jet.Tuple0
    public final override /*1*/ fun wait(/*0*/ p0: jet.Long, /*1*/ p1: jet.Int): jet.Tuple0
}
public open class Y : X<A> {
    public final /*constructor*/ fun <init>(): Y
    package open override /*1*/ fun bar(/*0*/ a: A?): jet.Tuple0
    protected open override /*1*/ fun clone(): jet.Any
    public open override /*1*/ fun equals(/*0*/ p0: jet.Any?): jet.Boolean
    protected open override /*1*/ fun finalize(): jet.Tuple0
    package open override /*1*/ fun foo(): A?
    public final override /*1*/ fun getClass(): java.lang.Class<out jet.Any?>?
    public open override /*1*/ fun hashCode(): jet.Int
    public final override /*1*/ fun notify(): jet.Tuple0
    public final override /*1*/ fun notifyAll(): jet.Tuple0
    public open override /*1*/ fun toString(): jet.String?
    public final override /*1*/ fun wait(): jet.Tuple0
    public final override /*1*/ fun wait(/*0*/ p0: jet.Long): jet.Tuple0
    public final override /*1*/ fun wait(/*0*/ p0: jet.Long, /*1*/ p1: jet.Int): jet.Tuple0
}
internal final fun main(): jet.Tuple0
