GHC 7.8.3 here.
Hmm, on second inspection I believe that the Bool reference is to the top-level expression, not the list items after all.
I don't seem to get any defaulting behaviour either when not using GHCi. This seems to indicate that the extended interactive type defaulting is coming into play:
I'd guess that this means that the () default is being used. -Wall seems to indicate that this is in-fact the case:
[Prelude] λ [] == []
<interactive>:2:4: Warning:
Defaulting the following constraint(s) to type ‘()’
(Eq t0) arising from a use of ‘==’
In the expression: [] == []
In an equation for ‘it’: it = [] == []
True
Hope this helps.
- Lyndon