//// [recursiveIdenticalOverloadResolution.ts] module M { interface I { (i: I): I; } function f(p: I) { return f }; var i: I; f(i); f(f(i)); f((f(f(i)))); } //// [recursiveIdenticalOverloadResolution.js] var M; (function (M) { function f(p) { return f; } ; var i; f(i); f(f(i)); f((f(f(i)))); })(M || (M = {}));