=== tests/cases/compiler/contextualSignatureInstantiation2.ts === // dot f g x = f(g(x)) var dot: (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S; >dot : (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S, Symbol(dot, Decl(contextualSignatureInstantiation2.ts, 1, 3)) >T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 1, 10)) >S : S, Symbol(S, Decl(contextualSignatureInstantiation2.ts, 1, 12)) >f : (_: T) => S, Symbol(f, Decl(contextualSignatureInstantiation2.ts, 1, 16)) >_ : T, Symbol(_, Decl(contextualSignatureInstantiation2.ts, 1, 20)) >T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 1, 10)) >S : S, Symbol(S, Decl(contextualSignatureInstantiation2.ts, 1, 12)) >U : U, Symbol(U, Decl(contextualSignatureInstantiation2.ts, 1, 36)) >g : (_: U) => T, Symbol(g, Decl(contextualSignatureInstantiation2.ts, 1, 39)) >_ : U, Symbol(_, Decl(contextualSignatureInstantiation2.ts, 1, 43)) >U : U, Symbol(U, Decl(contextualSignatureInstantiation2.ts, 1, 36)) >T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 1, 10)) >_ : U, Symbol(_, Decl(contextualSignatureInstantiation2.ts, 1, 59)) >U : U, Symbol(U, Decl(contextualSignatureInstantiation2.ts, 1, 36)) >S : S, Symbol(S, Decl(contextualSignatureInstantiation2.ts, 1, 12)) dot = (f: (_: T) => S) => (g: (_: U) => T): (r:U) => S => (x) => f(g(x)); >dot = (f: (_: T) => S) => (g: (_: U) => T): (r:U) => S => (x) => f(g(x)) : (f: (_: T) => S) => (g: (_: U) => T) => (r: U) => S >dot : (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S, Symbol(dot, Decl(contextualSignatureInstantiation2.ts, 1, 3)) >(f: (_: T) => S) => (g: (_: U) => T): (r:U) => S => (x) => f(g(x)) : (f: (_: T) => S) => (g: (_: U) => T) => (r: U) => S >T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 2, 7)) >S : S, Symbol(S, Decl(contextualSignatureInstantiation2.ts, 2, 9)) >f : (_: T) => S, Symbol(f, Decl(contextualSignatureInstantiation2.ts, 2, 13)) >_ : T, Symbol(_, Decl(contextualSignatureInstantiation2.ts, 2, 17)) >T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 2, 7)) >S : S, Symbol(S, Decl(contextualSignatureInstantiation2.ts, 2, 9)) >(g: (_: U) => T): (r:U) => S => (x) => f(g(x)) : (g: (_: U) => T) => (r: U) => S >U : U, Symbol(U, Decl(contextualSignatureInstantiation2.ts, 2, 33)) >g : (_: U) => T, Symbol(g, Decl(contextualSignatureInstantiation2.ts, 2, 36)) >_ : U, Symbol(_, Decl(contextualSignatureInstantiation2.ts, 2, 40)) >U : U, Symbol(U, Decl(contextualSignatureInstantiation2.ts, 2, 33)) >T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 2, 7)) >r : U, Symbol(r, Decl(contextualSignatureInstantiation2.ts, 2, 54)) >U : U, Symbol(U, Decl(contextualSignatureInstantiation2.ts, 2, 33)) >S : S, Symbol(S, Decl(contextualSignatureInstantiation2.ts, 2, 9)) >(x) => f(g(x)) : (x: U) => S >x : U, Symbol(x, Decl(contextualSignatureInstantiation2.ts, 2, 68)) >f(g(x)) : S >f : (_: T) => S, Symbol(f, Decl(contextualSignatureInstantiation2.ts, 2, 13)) >g(x) : T >g : (_: U) => T, Symbol(g, Decl(contextualSignatureInstantiation2.ts, 2, 36)) >x : U, Symbol(x, Decl(contextualSignatureInstantiation2.ts, 2, 68)) var id: (x:T) => T; >id : (x: T) => T, Symbol(id, Decl(contextualSignatureInstantiation2.ts, 3, 3)) >T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 3, 9)) >x : T, Symbol(x, Decl(contextualSignatureInstantiation2.ts, 3, 12)) >T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 3, 9)) >T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 3, 9)) var r23 = dot(id)(id); >r23 : (_: {}) => {}, Symbol(r23, Decl(contextualSignatureInstantiation2.ts, 4, 3)) >dot(id)(id) : (_: {}) => {} >dot(id) : (g: (_: U) => {}) => (_: U) => {} >dot : (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S, Symbol(dot, Decl(contextualSignatureInstantiation2.ts, 1, 3)) >id : (x: T) => T, Symbol(id, Decl(contextualSignatureInstantiation2.ts, 3, 3)) >id : (x: T) => T, Symbol(id, Decl(contextualSignatureInstantiation2.ts, 3, 3))