Martin Norb�ck wrote: | However, it's extremely common to write code like this: | | f expr = case expr of | EXPR_NOT expr -> something with expr | EXPR_UNARY_MINUS expr -> something with expr | | not allowing this would make the programmer have to invent new names | here. I had to turn off this warning for the project we do at work, | because the compiler would emit hundreds of warnings for cases like | this. Changing all bound names was not a good option.
I agree with Antony on that compilers should emit warnings on potentially-dangerous usages. Anyone working on a lint for Haskell? :-) It would be a valuable contribution to our community. On the other hand, I think Martin has a reasonable concern. However, note that in Hal's original example: | f x = f' 0 x | where f' acc [] = acc | f acc (x:xs) = f' (x+acc) xs the inner f is never used. Therefore I believe -fwarn-unused-local-binding (if there is such an option) will detect the bug in Hal's code without flooding stderr in Martin's case. - Zhanyong _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
