Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to [temporarily] suppress "defined but not used" warnings?

Tags:

haskell

ghc

When I prototype Haskell programs, I always get hundreds of warnings like this (not joking):

/Users/bob/SourceCode/course/is/expriment/LiftedSpine2.hs:70:15:
    Warning: Defined but not used: `ta'

/Users/bob/SourceCode/course/is/expriment/LiftedSpine2.hs:72:15:
    Warning: Defined but not used: `ta'

/Users/bob/SourceCode/course/is/expriment/LiftedSpine2.hs:77:26:
    Warning: Defined but not used: `v'

Is there anyway to remove these warnings temporarily? I tried putting this in my .hs file:

 {-# OPTIONS_GHC -fno-warn-unused-binds -fno-warn-name-shadowing 
    -fwarn-monomorphism-restriction -fwarn-hi-shadowing
 #-}

Unfortunately, it does not work, and although I also tried to :set -fno-warn-unused-binds, it still does not work.

Many thanks!

like image 579
bobzhang Avatar asked Nov 22 '11 02:11

bobzhang


4 Answers

Another possibility, depending on your situation: I believe you can prefix identifiers with an underscore to suppress this warning. So:

_x = 42

will not generate the warning if _x is not used.

like image 154
luqui Avatar answered Oct 16 '22 12:10

luqui


GHC has two warnings flags which can trigger Warning: Defined but not used.

You need some combination of the command line flags -fno-warn-unused-binds and -fno-warn-unused-matches.

like image 42
liftM2 Avatar answered Oct 16 '22 12:10

liftM2


I usually use -w to suppress all warnings when I want get rid of some warning temporarily.

like image 8
augustss Avatar answered Oct 16 '22 13:10

augustss


I use a workaround for this:

I compile without warnings, but then I use HLint tool to display warnings for me. HLint has facilities to turn warnings separately.

like image 5
nponeccop Avatar answered Oct 16 '22 13:10

nponeccop