interface Collection { length: number; add(x: T): void; remove(x: T): boolean; } interface Combinators { forEach(c: Collection, f: (x: T) => Date): void; } var c2: Collection; var _: Combinators; // errors on all 3 lines, bug was that r5 was the only line with errors var f = (x: number) => { return x.toFixed() }; var r5 = _.forEach(c2, f); var r6 = _.forEach(c2, (x) => { return x.toFixed() });