=== tests/cases/compiler/recursiveTypeComparison2.ts === // Before fix this would cause compiler to hang (#1170) declare module Bacon { >Bacon : typeof Bacon interface Event { } interface Error extends Event { } interface Observable { zip(other: EventStream, f: (a: T, b: U) => V): EventStream; >zip : (other: EventStream, f: (a: T, b: U) => V) => EventStream >other : EventStream >f : (a: T, b: U) => V >a : T >b : U slidingWindow(max: number, min?: number): Property; >slidingWindow : (max: number, min?: number) => Property >max : number >min : number log(): Observable; >log : () => Observable combine(other: Observable, f: (a: T, b: U) => V): Property; >combine : (other: Observable, f: (a: T, b: U) => V) => Property >other : Observable >f : (a: T, b: U) => V >a : T >b : U withStateMachine(initState: U, f: (state: U, event: Event) => StateValue): EventStream; >withStateMachine : (initState: U, f: (state: U, event: Event) => StateValue) => EventStream >initState : U >f : (state: U, event: Event) => StateValue >state : U >event : Event decode(mapping: Object): Property; >decode : (mapping: Object) => Property >mapping : Object awaiting(other: Observable): Property; >awaiting : (other: Observable) => Property >other : Observable endOnError(f?: (value: T) => boolean): Observable; >endOnError : (f?: (value: T) => boolean) => Observable >f : (value: T) => boolean >value : T withHandler(f: (event: Event) => any): Observable; >withHandler : (f: (event: Event) => any) => Observable >f : (event: Event) => any >event : Event name(name: string): Observable; >name : (name: string) => Observable >name : string withDescription(...args: any[]): Observable; >withDescription : (...args: any[]) => Observable >args : any[] } interface Property extends Observable { } interface EventStream extends Observable { } interface Bus extends EventStream { } var Bus: new () => Bus; >Bus : new () => Bus } var stuck: Bacon.Bus = new Bacon.Bus(); >stuck : Bacon.Bus >Bacon : any >new Bacon.Bus() : Bacon.Bus >Bacon.Bus : new () => Bacon.Bus >Bacon : typeof Bacon >Bus : new () => Bacon.Bus