namespace <root>

// <namespace name="boundsWithSubstitutors">
namespace boundsWithSubstitutors

internal open class boundsWithSubstitutors.A</*0*/ T : jet.Any?> : jet.Any {
    public final /*constructor*/ fun </*0*/ T : jet.Any?><init>(): boundsWithSubstitutors.A<T>
}
internal final class boundsWithSubstitutors.B</*0*/ X : boundsWithSubstitutors.A<X>> : jet.Any {
    public final /*constructor*/ fun </*0*/ X : boundsWithSubstitutors.A<X>><init>(): boundsWithSubstitutors.B<X>
}
internal final class boundsWithSubstitutors.C : boundsWithSubstitutors.A<boundsWithSubstitutors.C> {
    public final /*constructor*/ fun <init>(): boundsWithSubstitutors.C
}
internal final class boundsWithSubstitutors.X</*0*/ A : jet.Any?, /*1*/ B : A> : jet.Any {
    public final /*constructor*/ fun </*0*/ A : jet.Any?, /*1*/ B : A><init>(): boundsWithSubstitutors.X<A, B>
}
internal final val a: boundsWithSubstitutors.B<boundsWithSubstitutors.C>
internal final val a1: boundsWithSubstitutors.B<jet.Int>
internal final val b: boundsWithSubstitutors.X<jet.Any, boundsWithSubstitutors.X<boundsWithSubstitutors.A<boundsWithSubstitutors.C>, boundsWithSubstitutors.C>>
internal final val b0: boundsWithSubstitutors.X<jet.Any, jet.Any?>
internal final val b1: boundsWithSubstitutors.X<jet.Any, boundsWithSubstitutors.X<boundsWithSubstitutors.A<boundsWithSubstitutors.C>, jet.String>>
// </namespace name="boundsWithSubstitutors">
internal open class A : jet.Any {
    public final /*constructor*/ fun <init>(): A
}
internal open class B</*0*/ T : A> : jet.Any {
    public final /*constructor*/ fun </*0*/ T : A><init>(): B<T>
}
internal abstract class C</*0*/ T : B<jet.Int>, /*1*/ X : jet.Function1<B<jet.Char>, jet.Tuple2<out B<jet.Any>, out B<A>>>> : B<jet.Any> {
    public final /*constructor*/ fun </*0*/ T : B<jet.Int>, /*1*/ X : jet.Function1<B<jet.Char>, jet.Tuple2<out B<jet.Any>, out B<A>>>><init>(): C<T, X>
    internal final val a: B<jet.Char>
    internal abstract val x: jet.Function1<B<jet.Char>, B<jet.Any>>
}
internal final fun </*0*/ T : jet.Int?>bar(): jet.Tuple0
internal final fun </*0*/ T : jet.Int>jet.Int.buzz(): jet.Tuple0
internal final fun </*0*/ T : jet.Any>foo(): jet.Tuple0
internal final fun test(): jet.Tuple0
