**TypeScript Version:** Tested on 2.5.2 and 2.6.0-dev.20170904 **Code** The code is there: https://github.com/emmanueltouzery/prelude.ts/tree/5c33c1eeeea7234506e54331d06590e2feb9b00d To build it you can just run `npm install && tsc`. It's about 1800 LOCs of typescript. On my (old) machine, if I build it as-is with 2.5 or 2.6-dev I get a ~5s build time. If I uncomment in `src/IMap.ts` [lines 29 and 30](https://github.com/emmanueltouzery/prelude.ts/blob/5c33c1eeeea7234506e54331d06590e2feb9b00d/src/IMap.ts#L28-L30), however, the build time explodes. On 2.5 I didn't bother waiting but it would be a long, long, long time. On 2.6-dev the speed is much better but the build time still explodes from 5 seconds to 35 seconds. The two lines are: ```typescript mapValuesStruct<V2>(fn:(v:V)=>V2): IMap<K,V2>; mapValues<V2>(fn:(v:V)=>V2&WithEquality): IMap<K,V2>; ``` And they are implemented in `src/HashMap.ts` with: ```typescript map<K2,V2>(fn:(k:K&WithEquality, v:V)=>[K2&WithEquality,V2&WithEquality]): HashMap<K2,V2> { return this.mapStruct(fn); } mapValuesStruct<V2>(fn:(v:V)=>V2): HashMap<K,V2> { return this.hamt.fold( (acc: HashMap<K,V2>, value: V, key: K&WithEquality) => acc.putStruct(key,fn(value)), HashMap.empty()); } ``` When I implement the interface, I change the return type to a more specific one, which is as far as I'm aware, legal. **Expected behavior:** Uncommenting these two lines of code shouldn't cause the build time to increase sevenfold. Maybe the code is wrong, but then I should get a compilation error or a warning, not an increased build time. If I put in the `tsconfig.json`: `"noStrictGenericChecks": true` then the performance issue goes away completely even with the lines uncommented.