=== tests/cases/compiler/inferentialTypingWithFunctionType2.ts ===
function identity(a: A): A {
>identity : (a: A) => A
>A : A
>a : A
>A : A
>A : A
return a;
>a : A
}
var x = [1, 2, 3].map(identity)[0];
>x : number
>[1, 2, 3].map(identity)[0] : number
>[1, 2, 3].map(identity) : number[]
>[1, 2, 3].map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]
>[1, 2, 3] : number[]
>1 : number
>2 : number
>3 : number
>map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]
>identity : (a: A) => A
>0 : number