namespace <root>

internal open class Base</*0*/ P : jet.Any?> : jet.Any {
    public final /*constructor*/ fun </*0*/ P : jet.Any?><init>(): Base<P>
    internal final fun f(): jet.Int
}
internal final class Diamond</*0*/ P : jet.Any?> : Left<P>, Right<P> {
    public final /*constructor*/ fun </*0*/ P : jet.Any?><init>(): Diamond<P>
    internal final override /*2*/ fun f(): jet.Int
}
internal open class Left</*0*/ P : jet.Any?> : Base<P> {
    public final /*constructor*/ fun </*0*/ P : jet.Any?><init>(): Left<P>
    internal final override /*1*/ fun f(): jet.Int
}
internal abstract trait Right</*0*/ P : jet.Any?> : Base<P> {
    internal final override /*1*/ fun f(): jet.Int
}
