til
til

Reputation: 203

Finding unused Haskell functions in a module or file?

Is there a way to automatically find unused functions (and constants) in a module or .hs file? Specifically, I mean those functions that are not used (directly or indirectly) by the functions in the export list of the current module/file.

I know that e.g. Emacs haskell mode has the ability to warn about unused importS as follows: The import of XXX is redundant

Is there similar tool or method for finding unused functions?

Note: I know this can be done manually by deleting some code and see whether it still compiles. But it's tedious process.

Upvotes: 6

Views: 1085

Answers (1)

ErikR
ErikR

Reputation: 52057

Here are some relevant ghc -W flags:

-Wunused-binds
-Wunused-do-bind
-Wunused-foralls
-Wunused-imports
-Wunused-local-binds
-Wunused-matches
-Wunused-pattern-binds
-Wunused-top-binds
-Wunused-type-patterns

Or just use -Wall. You can get a complete list of ghc flags with ghc --show-options.

Upvotes: 7

Related Questions