interface A { x : A<()=>T> } interface B { x : B<()=>T> } var a: A var b: B = a