These changes were motivated by Trac #13256. While poking around, I
realized we weren't very consistent in our "-Woverflowed-literals"
warnings. This patch fixes that by:
- warning earlier on in the pipeline (ie. before we've desugared 'Int' patterns into 'I# Int#')
- handling 'HsLit' as well as 'HsOverLit' (this covers unboxed literals)
- covering more pattern / expression forms
4/6 of the warnings in the 'Overflow' test are due to this patch. The
other two are mostly for completeness.
Also fixed a missing empty-enumeration warning for 'Natural'.
This warnings were tripped up by the 'Bounded Word' instance (see Trac #9505),
but the fix was obvious and simple: use unboxed word literals.