nonIdenticalTypeConstraints.ts(2,5): error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor.
nonIdenticalTypeConstraints.ts(3,5): error TS2564: Property 'b' has no initializer and is not definitely assigned in the constructor.
nonIdenticalTypeConstraints.ts(4,5): error TS2564: Property 'c' has no initializer and is not definitely assigned in the constructor.
nonIdenticalTypeConstraints.ts(7,7): error TS2428: All declarations of 'Foo' must have identical type parameters.
nonIdenticalTypeConstraints.ts(8,5): error TS2564: Property 'n' has no initializer and is not definitely assigned in the constructor.
nonIdenticalTypeConstraints.ts(10,11): error TS2428: All declarations of 'Foo' must have identical type parameters.
nonIdenticalTypeConstraints.ts(13,11): error TS2428: All declarations of 'Qux' must have identical type parameters.
nonIdenticalTypeConstraints.ts(16,7): error TS2428: All declarations of 'Qux' must have identical type parameters.
nonIdenticalTypeConstraints.ts(17,5): error TS2564: Property 'n' has no initializer and is not definitely assigned in the constructor.
nonIdenticalTypeConstraints.ts(21,5): error TS2564: Property 'n' has no initializer and is not definitely assigned in the constructor.
nonIdenticalTypeConstraints.ts(30,5): error TS2564: Property 'n' has no initializer and is not definitely assigned in the constructor.
nonIdenticalTypeConstraints.ts(33,7): error TS2428: All declarations of 'Quux' must have identical type parameters.
nonIdenticalTypeConstraints.ts(34,5): error TS2564: Property 'n' has no initializer and is not definitely assigned in the constructor.
nonIdenticalTypeConstraints.ts(36,11): error TS2428: All declarations of 'Quux' must have identical type parameters.


==== nonIdenticalTypeConstraints.ts (14 errors) ====
    class Different {
        a: number;
        ~
!!! error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor.
        b: string;
        ~
!!! error TS2564: Property 'b' has no initializer and is not definitely assigned in the constructor.
        c: boolean;
        ~
!!! error TS2564: Property 'c' has no initializer and is not definitely assigned in the constructor.
    }
    
    class Foo<T extends Function> {
          ~~~
!!! error TS2428: All declarations of 'Foo' must have identical type parameters.
        n: T;
        ~
!!! error TS2564: Property 'n' has no initializer and is not definitely assigned in the constructor.
    }
    interface Foo<T extends Different> {
              ~~~
!!! error TS2428: All declarations of 'Foo' must have identical type parameters.
        y: T;
    }
    interface Qux<T extends Different> {
              ~~~
!!! error TS2428: All declarations of 'Qux' must have identical type parameters.
        y: T;
    }
    class Qux<T extends Function> {
          ~~~
!!! error TS2428: All declarations of 'Qux' must have identical type parameters.
        n: T;
        ~
!!! error TS2564: Property 'n' has no initializer and is not definitely assigned in the constructor.
    }
    
    class Bar<T extends Function> {
        n: T;
        ~
!!! error TS2564: Property 'n' has no initializer and is not definitely assigned in the constructor.
    }
    interface Bar<T extends Function> {
        y: T;
    }
    interface Baz<T extends Function> {
        y: T;
    }
    class Baz<T extends Function> {
        n: T;
        ~
!!! error TS2564: Property 'n' has no initializer and is not definitely assigned in the constructor.
    }
    
    class Quux<T> {
          ~~~~
!!! error TS2428: All declarations of 'Quux' must have identical type parameters.
        n: T;
        ~
!!! error TS2564: Property 'n' has no initializer and is not definitely assigned in the constructor.
    }
    interface Quux<U> {
              ~~~~
!!! error TS2428: All declarations of 'Quux' must have identical type parameters.
        m: U;
    }