package

public fun test(/*0*/ k: K): kotlin.Unit

public interface Fn</*0*/ T : kotlin.Any!, /*1*/ R : kotlin.Any!> {
    public abstract fun apply(/*0*/ t: T!): R!
    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 Fn2</*0*/ T : kotlin.Any!, /*1*/ R : kotlin.Any!> : Fn<T!, R!> {
    public abstract override /*1*/ /*fake_override*/ fun apply(/*0*/ t: T!): R!
    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 K {
    public abstract fun bar(/*0*/ f: Fn2<kotlin.String, kotlin.Any>): kotlin.Int
    public abstract fun bar(/*0*/ f: Fn<kotlin.String, kotlin.Any>): kotlin.String
    public abstract fun bas(/*0*/ f: Fn<kotlin.Any, kotlin.Any>): kotlin.String
    public abstract fun bas(/*0*/ f: Fn<kotlin.Any, kotlin.String>): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public abstract fun foo(/*0*/ f: Fn<kotlin.Any, kotlin.Any>): kotlin.Int
    public abstract fun foo(/*0*/ f: Fn<kotlin.String, kotlin.Any>): kotlin.String
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
