Custom Query (7504 matches)


Show under each result:

Results (16 - 18 of 7504)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Ticket Resolution Summary Owner Reporter
#3908 wontfix "Defined but not used" for variable used in Template Haskell splice josh

I encountered this warning on valid code using Template Haskell ; I had to change "name" to "_name" to make it compile warning-free.

Test case:

{-# LANGUAGE FlexibleInstances, TemplateHaskell #-}
import Language.Haskell.TH

main :: IO ()
main = do
    let name = mkName "name"
    decl <- runQ [d| instance Show $(conT name) where show = undefined |]
    print decl


TestCase.hs:6:8: Warning: Defined but not used: `name'

I found ticket #3873, but I don't know if it represents the same bug.

#5194 fixed "Fix build" broke build? benl

changeset 5bfa6a6382a4e4b949d333b1996065e9bcfacb18 removed import Config from compiler/nativeGen/AsmCodeGen.lhs, building failed with

    Not in scope: `cProjectVersion'

Reinserting the import made AsmCodeGen.lhs compile again, I'd be surprised if it breaks the build later on (build currently underway).

#8470 fixed "Fix" spurious Unused do-bind warnings 2piix

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
   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.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Note: See TracQuery for help on using queries.