tooFewArgumentsInGenericFunctionTypedArgument.ts(12,11): error TS2454: Variable '_' is used before being assigned.
tooFewArgumentsInGenericFunctionTypedArgument.ts(12,17): error TS2454: Variable 'c2' is used before being assigned.
tooFewArgumentsInGenericFunctionTypedArgument.ts(14,11): error TS2454: Variable '_' is used before being assigned.
tooFewArgumentsInGenericFunctionTypedArgument.ts(14,17): error TS2454: Variable 'c2' is used before being assigned.


==== tooFewArgumentsInGenericFunctionTypedArgument.ts (4 errors) ====
    interface Collection<T, U> {
        length: number;
        add(x: T, y: U): void;
        remove(x: T, y: U): boolean;
    }
    interface Combinators {
        map<T, U, V>(c: Collection<T,U>, f: (x: T, y: U) => V): Collection<T, V>;
        map<T, U>(c: Collection<T,U>, f: (x: T, y: U) => any): Collection<any, any>;
    }
    var c2: Collection<number, string>;
    var _: Combinators;
    var r1a = _.map(c2, (x) => { return x.toFixed() }); 
              ~
!!! error TS2454: Variable '_' is used before being assigned.
                    ~~
!!! error TS2454: Variable 'c2' is used before being assigned.
    var rf1 = (x: number) => { return x.toFixed() };
    var r1b = _.map(c2, rf1); 
              ~
!!! error TS2454: Variable '_' is used before being assigned.
                    ~~
!!! error TS2454: Variable 'c2' is used before being assigned.
    
    