// @target: es2015
interface A {
    x:B[];
}

interface B {
    x:A[];
}

function f(p: A) { return p };
var b:B;
f(b);

interface I1 {
    y:I2;
}

interface I2 {
    y:I3;
}

interface I3 {
    y:I1;
}

function g(p: I1) { return p };
var i2:I2;
g(i2);
var i3:I3;
g(i3);

interface I4 {
    y:I5;
}

interface I5 {
    y:I4;
}

var i4:I4;
g(i4);

