==== tests/cases/compiler/derivedTypeIncompatibleSignatures.ts (4 errors) ====
    interface A {
        (a: string): string;
    }
    
    interface B extends A {
              ~
!!! derivedTypeIncompatibleSignatures.ts(5,11): error TS2143: Interface 'B' cannot extend interface 'A':
!!! 	Call signatures of types 'B' and 'A' are incompatible.
        (a: string): number; // Number is not a subtype of string.  Should error.
    }
    
    interface C {
        new (a: string): string;
    }
    
    interface D extends C {
              ~
!!! derivedTypeIncompatibleSignatures.ts(13,11): error TS2143: Interface 'D' cannot extend interface 'C':
!!! 	Construct signatures of types 'D' and 'C' are incompatible.
        new (a: string): number; // Number is not a subtype of string.  Should error.
    }
    
    interface E {
        [a: string]: string;
    }
    
    interface F extends E {
              ~
!!! derivedTypeIncompatibleSignatures.ts(21,11): error TS2143: Interface 'F' cannot extend interface 'E':
!!! 	Index signatures of types 'F' and 'E' are incompatible.
        [a: string]: number; // Number is not a subtype of string.  Should error.
    }
    
    interface G {
        [a: number]: string;
    }
    
    interface H extends G {
              ~
!!! derivedTypeIncompatibleSignatures.ts(29,11): error TS2143: Interface 'H' cannot extend interface 'G':
!!! 	Index signatures of types 'H' and 'G' are incompatible.
        [a: number]: number; // Should error for the same reason
    }