text: //// [arrayOfFunctionTypes3.ts]
  // valid uses of arrays of function types
  
  var x = [() => 1, () => { }];
  var r2 = x[0]();
  
  class C {
      foo: string;
  }
  var y = [C, C];
  var r3 = new y[0]();
  
  var a: { (x: number): number; (x: string): string; };
  var b: { (x: number): number; (x: string): string; };
  var c: { (x: number): number; (x: any): any; };
  var z = [a, b, c];
  var r4 = z[0];
  var r5 = r4(''); // any not string
  var r5b = r4(1);
  
  var a2: { <T>(x: T): number; (x: string): string;};
  var b2: { <T>(x: T): number; (x: string): string; };
  var c2: { (x: number): number; <T>(x: T): any; };
  
  var z2 = [a2, b2, c2];
  var r6 = z2[0];
  var r7 = r6(''); // any not string
  
  //// [arrayOfFunctionTypes3.js]
  // valid uses of arrays of function types
  var x = [
      function () {
          return 1;
      },
      function () {
      }
  ];
  var r2 = x[0]();
  var C = (function () {
      function C() {
      }
      return C;
  })();
  var y = [
      C,
      C
  ];
  var r3 = new y[0]();
  var a;
  var b;
  var c;
  var z = [
      a,
      b,
      c
  ];
  var r4 = z[0];
  var r5 = r4(''); // any not string
  var r5b = r4(1);
  var a2;
  var b2;
  var c2;
  var z2 = [
      a2,
      b2,
      c2
  ];
  var r6 = z2[0];
  var r7 = r6(''); // any not string
  