package

public fun foo(/*0*/ x: kotlin.Int): kotlin.Unit
public fun foo2(/*0*/ x: kotlin.Number): kotlin.Unit
public fun foo3(/*0*/ x: kotlin.Int): kotlin.Unit
public fun foo3(/*0*/ x: kotlin.Number): kotlin.Unit
public fun foo4(/*0*/ x: A): kotlin.Unit
public fun foo4(/*0*/ x: B): kotlin.Unit
public fun foo5(/*0*/ x: A): kotlin.Unit
public fun foo5(/*0*/ x: B): kotlin.Unit
public fun foo5(/*0*/ x: C): kotlin.Unit
public fun foo6(/*0*/ x: kotlin.Float): kotlin.Unit
public fun foo6(/*0*/ x: kotlin.Int): kotlin.Unit
public fun foo6(/*0*/ x: kotlin.Number): kotlin.Unit
public fun </*0*/ T> id(/*0*/ x: T): T
public fun main(): kotlin.Unit
public fun </*0*/ T> select(/*0*/ vararg x: T /*kotlin.Array<out T>*/): T
public fun </*0*/ T : (kotlin.Float) -> kotlin.Unit> selectNumber(/*0*/ vararg x: T /*kotlin.Array<out T>*/): T

public interface A {
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface B {
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface C : A, B {
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
