Re Invalid types as warnings:<p>Ghc since 7.6 has had a -fdefer-type-errors flag --- <a href="http://www.haskell.org/ghc/docs/7.6.2/html/users_guide/defer-type-errors.html" rel="nofollow">http://www.haskell.org/ghc/docs/7.6.2/html/users_guide/defer...</a> --- which produces warnings at compile-time and exceptions at runtime.