package <root> {
    annotation class A constructor() : Annotation
    annotation class B constructor() : Annotation
    class Foo constructor()
    @A @B fun a()
    fun Foo.e()
    fun f1(x: Foo)
    fun f2(x: Foo, y: Foo): Int
    inline fun i1(block: () -> Foo)
    inline fun i2(noinline block: () -> Foo)
    inline fun i3(crossinline block: () -> Foo)
    fun i4(block: (Foo) -> Int)
    fun i5(block: (Foo, Foo) -> Int)
    fun i6(block: Foo.() -> Int)
    fun i7(block: Foo.(Foo) -> Int)
    fun <T> t1(x: Foo)
    fun <T> t2(x: T)
    fun <T, F> t3(x: T, y: F)
    inline fun <reified T> t4(x: T)
    fun <T : Number> t5(x: T)
}