-- John A. De Goes wrote:
>> Adding information cannot remove a contradiction from the information
>> set available to the compiler.
> But it can and often does, for example, for [] or 4. What's the type of either expression without more information?
[] :: [a]
4 :: Num a => a
Do I win something?