
#9244: Compiler could warn about type variable shadowing, and hint about ScopedTypeVariables -------------------------------------------------+------------------------- Reporter: stusmith | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.6.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Incorrect warning at | Unknown/Multiple compile-time | Difficulty: Test Case: | Unknown Blocking: | Blocked By: | Related Tickets: -------------------------------------------------+------------------------- Comment (by simonpj): I think that's a fine idea. The easiest place to try this might be the renamer. At the moment the type signature for `tryMaybe` {{{ tryMaybe :: IO a -> IO (Maybe a) }}} does not bring `a` into scope in the body. You need `-XScopedTypeVariables`, ''and'' you need an explicit forall: {{{ tryMaybe :: forall a. IO a -> IO (Maybe a) }}} But it might be reasonable for the renamer to suggest that this is perhaps what you intended, when it comes across that `a` mentioned in {{{ (try action) :: IO (Either SomeException a) }}} Simon -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9244#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler