I added some detailed comments in `deduceExpType`.