tests/cases/compiler/genericCombinators2.ts(15,43): error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'.
  Type 'string' is not assignable to type 'Date'.
    Property 'toDateString' is missing in type 'String'.
tests/cases/compiler/genericCombinators2.ts(16,43): error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'.
  Type 'string' is not assignable to type 'Date'.


==== tests/cases/compiler/genericCombinators2.ts (2 errors) ====
    interface Collection<T, U> {
        length: number;
        add(x: T, y: U): void;
        remove(x: T, y: U): boolean;
    }
    
    interface Combinators {
        map<T, U>(c: Collection<T, U>, f: (x: T, y: U) => any): Collection<any, any>;
        map<T, U, V>(c: Collection<T, U>, f: (x: T, y: U) => V): Collection<T, V>;
    }
    
    var _: Combinators;
    var c2: Collection<number, string>;
    var rf1 = (x: number, y: string) => { return x.toFixed() };
    var r5a = _.map<number, string, Date>(c2, (x, y) => { return x.toFixed() });
                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'.
!!! error TS2345:   Type 'string' is not assignable to type 'Date'.
!!! error TS2345:     Property 'toDateString' is missing in type 'String'.
    var r5b = _.map<number, string, Date>(c2, rf1);
                                              ~~~
!!! error TS2345: Argument of type '(x: number, y: string) => string' is not assignable to parameter of type '(x: number, y: string) => Date'.
!!! error TS2345:   Type 'string' is not assignable to type 'Date'.