[GHC] #8470: "Fix" spurious Unused do-bind warnings
GHC
ghc-devs at haskell.org
Tue Oct 22 15:34:23 UTC 2013
#8470: "Fix" spurious Unused do-bind warnings
------------------------------------+-------------------------------------
Reporter: 2piix | Owner:
Type: feature request | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.6.3
Keywords: | Operating System: Unknown/Multiple
Architecture: Unknown/Multiple | Type of failure: None/Unknown
Difficulty: Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: |
------------------------------------+-------------------------------------
I've been writing a lot of monadic code with side effects, and I'm getting
a lot of unused do-bind warnings.
In particular, consider the contrived example:
{{{
performSideEffect :: IO ()
preformSideEffect = return ()
someComplicatedIOAction :: a -> IO ()
someComplicatedIOAction a = do
a <- getA
performSideEffect
putStrLn . show $ a
}}}
The call to performSideEffect triggers the unused do-bind warning.
I can appreciate that we're not binding result of performSideEffect, but
we know, by virtue of the type () being a singleton, that there is nothing
we can do with the the result. So it "really" doesn't make sense to pull
anything out of the action. Fixing the warning with _ <-
performSideEffect just adds noise.
Would it be possible to turn off the warning in the case that the monad
action returns (), or maybe even other singleton types? I'm guessing the
latter is harder, and I'd be happy to settle for just (). I don't know
enough about GHC's internals to evaluate how hard either would be, though.
I know about -fno-warn-unused-do-bind, but it is inconvenient to use in a
project that uses -Wall in the Cabal file, which a fairly popular web
application framework uses. Even still, catching the legitimate unused
do-binds while eliminating these spurious ones would be a nice, noise-
lowering addition.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8470>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list