//// [recursiveInheritance2.ts]
interface A { (): B; };
declare var a: A;
var x = a();

interface B { (): C; };
declare var b: B;
var y = b();

interface C { (): A; };
declare var c: C;
var z = c();

x = y;


//// [recursiveInheritance2.js]
;
var x = a();
;
var y = b();
;
var z = c();
x = y;
