namespace <root>

// <namespace name="kt151">
namespace kt151

internal open class kt151.A : jet.Any {
    public final /*constructor*/ fun <init>(): kt151.A
    protected open fun x(): jet.Tuple0
}
internal final class kt151.B : kt151.A {
    public final /*constructor*/ fun <init>(): kt151.B
    protected open override /*1*/ fun x(): jet.Tuple0
}
internal open class kt151.C : jet.Any {
    public final /*constructor*/ fun <init>(): kt151.C
    internal open fun foo(): jet.Tuple0
}
internal final class kt151.D : kt151.C, kt151.T {
    public final /*constructor*/ fun <init>(): kt151.D
    protected open override /*2*/ fun foo(): jet.Tuple0
}
internal final class kt151.E : kt151.C, kt151.T {
    public final /*constructor*/ fun <init>(): kt151.E
    internal open override /*2*/ fun foo(): jet.Tuple0
}
internal final class kt151.F : kt151.C, kt151.T {
    public final /*constructor*/ fun <init>(): kt151.F
    private open override /*2*/ fun foo(): jet.Tuple0
}
internal final class kt151.G : kt151.C, kt151.T {
    public final /*constructor*/ fun <init>(): kt151.G
    public open override /*2*/ fun foo(): jet.Tuple0
}
internal abstract trait kt151.T : jet.Any {
    protected open fun foo(): jet.Tuple0
}
internal final fun test(/*0*/ b: kt151.B): jet.Tuple0
// </namespace name="kt151">
