namespace <root>

// <namespace name="test_visibility">
namespace test_visibility

internal final class test_visibility.A : jet.Any {
    public final /*constructor*/ fun <init>(): test_visibility.A
    private final fun f(/*0*/ i: jet.Int): test_visibility.B
    private final val i: jet.Int
    internal final fun test(): jet.Tuple0
    private final val v: test_visibility.B
}
internal final class test_visibility.B : jet.Any {
    public final /*constructor*/ fun <init>(): test_visibility.B
    internal final fun bMethod(): jet.Tuple0
}
internal open class test_visibility.C : test_visibility.T {
    public final /*constructor*/ fun <init>(): test_visibility.C
    protected final var i: jet.Int
    internal final fun test5(): jet.Tuple0
}
internal final class test_visibility.D : test_visibility.C {
    public final /*constructor*/ fun <init>(): test_visibility.D
    protected final override /*1*/ var i: jet.Int
    internal final val j: jet.Int
    internal final override /*1*/ fun test5(): jet.Tuple0
    internal final fun test6(): jet.Tuple0
}
internal final class test_visibility.E : test_visibility.C {
    public final /*constructor*/ fun <init>(): test_visibility.E
    protected final override /*1*/ var i: jet.Int
    internal final override /*1*/ fun test5(): jet.Tuple0
    internal final fun test7(): jet.Tuple0
}
internal final class test_visibility.F : test_visibility.C {
    public final /*constructor*/ fun <init>(): test_visibility.F
    protected final override /*1*/ var i: jet.Int
    internal final override /*1*/ fun test5(): jet.Tuple0
    internal final fun test8(/*0*/ c: test_visibility.C): jet.Tuple0
}
internal final class test_visibility.G : test_visibility.T {
    public final /*constructor*/ fun <init>(): test_visibility.G
    internal final fun test8(/*0*/ c: test_visibility.C): jet.Tuple0
}
protected final class test_visibility.ProtectedClass : jet.Any {
    public final /*constructor*/ fun <init>(): test_visibility.ProtectedClass
}
protected abstract trait test_visibility.ProtectedTrait : jet.Any {
}
internal abstract trait test_visibility.T : jet.Any {
}
internal final class test_visibility.Y : jet.Any {
    public final /*constructor*/ fun <init>(): test_visibility.Y
    internal final fun test2(): jet.Tuple0
}
internal final val internal_val: jet.Int
private final val private_val: jet.Int
protected final val protected_val: jet.Int
internal final fun doSmth(/*0*/ i: jet.Int): jet.Int
internal final fun internal_fun(): jet.Tuple0
private final fun private_fun(): jet.Tuple0
protected final fun protected_fun(): jet.Tuple0
internal final fun test1(): jet.Tuple0
internal final fun test3(/*0*/ a: test_visibility.A): jet.Tuple0
internal final fun test4(/*0*/ c: test_visibility.C): jet.Tuple0
// </namespace name="test_visibility">
// <namespace name="test_visibility2">
namespace test_visibility2

internal final fun test(): jet.Tuple0
// </namespace name="test_visibility2">
