=== tests/cases/compiler/genericRecursiveImplicitConstructorErrors2.ts ===
module TypeScript2 {
>TypeScript2 : typeof TypeScript2

  export interface DeclKind { };
>DeclKind : DeclKind

  export interface PullTypesymbol { };
>PullTypesymbol : PullTypesymbol

  export interface SymbolLinkKind { };
>SymbolLinkKind : SymbolLinkKind

  export enum PullSymbolVisibility {
>PullSymbolVisibility : PullSymbolVisibility

    Private,
>Private : PullSymbolVisibility

    Public
>Public : PullSymbolVisibility
  }
　
  export class PullSymbol {
>PullSymbol : PullSymbol

    constructor (name: string, declKind: DeclKind) {
>name : string
>declKind : DeclKind
>DeclKind : DeclKind

    }
    // link methods
    public addOutgoingLink<A,B,C>(linkTo: PullSymbol, kind: SymbolLinkKind) {
>addOutgoingLink : <A, B, C>(linkTo: PullSymbol, kind: SymbolLinkKind) => void
>A : A
>B : B
>C : C
>linkTo : PullSymbol
>PullSymbol : PullSymbol
>kind : SymbolLinkKind
>SymbolLinkKind : SymbolLinkKind

    }

    public getType<A,B,C>(): PullTypeSymbol<A,B,C> {
>getType : <A, B, C>() => PullTypeSymbol<A, B, C>
>A : A
>B : B
>C : C
>PullTypeSymbol : PullTypeSymbol<A, B, C>
>A : A
>B : B
>C : C

      return undefined;
>undefined : undefined
    }
  }
  export class PullTypeSymbol <A,B,C>extends PullSymbol {
>PullTypeSymbol : PullTypeSymbol<A, B, C>
>A : A
>B : B
>C : C
>PullSymbol : PullSymbol
  }
}

