Apparently (according to the haskell-mode retrospective: https://github.com/haskell/haskell-mode/wiki/Haskell-Mode-2015-retrospective ) lexical scoping produces better warning in Emacs!