
#8997: Warn about unused parameters in recursive definitions ------------------------------------+------------------------------------- Reporter: nomeata | Owner: Type: feature request | Status: new Priority: low | Milestone: Component: Compiler | Version: 7.8.2 Keywords: | Operating System: Unknown/Multiple Architecture: Unknown/Multiple | Type of failure: None/Unknown Difficulty: Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | ------------------------------------+------------------------------------- I’m correcting student’s exams right now; a good source of bad programs :-) Consider this program: {{{ foo _ y [] = y foo z y (_:xs) = foo z y xs }}} It would be nice if GHC would warn that the first parameter of `foo` is not used. IIRC GHC warns about unused constructors even when they occur on RHSs. If `foo` is passed to some higher order function that expects a particular type, removing the parameter would require a wrapper for there, or at least an anonymous lambda... but it’s probably still worth notifying the programmer, as more likely there is a bug or misunderstanding in such code. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8997 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler