=== 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 >T : T >S : S >f : (_: T) => S >_ : T >T : T >S : S >U : U >g : (_: U) => T >_ : U >U : U >T : T >_ : U >U : U >S : S 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 >(f: (_: T) => S) => (g: (_: U) => T): (r:U) => S => (x) => f(g(x)) : (f: (_: T) => S) => (g: (_: U) => T) => (r: U) => S >T : T >S : S >f : (_: T) => S >_ : T >T : T >S : S >(g: (_: U) => T): (r:U) => S => (x) => f(g(x)) : (g: (_: U) => T) => (r: U) => S >U : U >g : (_: U) => T >_ : U >U : U >T : T >r : U >U : U >S : S >(x) => f(g(x)) : (x: U) => S >x : U >f(g(x)) : S >f : (_: T) => S >g(x) : T >g : (_: U) => T >x : U var id: (x:T) => T; >id : (x: T) => T >T : T >x : T >T : T >T : T var r23 = dot(id)(id); >r23 : (_: {}) => {} >dot(id)(id) : (_: {}) => {} >dot(id) : (g: (_: U) => {}) => (_: U) => {} >dot : (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S >id : (x: T) => T >id : (x: T) => T