Hi Haskell is great for equational reasoning.
blah the_v_in_scope blah where (the_v_in_scope:_) = [ v | (n,v) <- env, n==target ]
This piece of code isn't. If you used head then you could trivially inline the_v_in_scope, this way is a lot harder. You might spot a pointfree pattern and lift it up. You might move code around more freely. Lots of patterns like this breaks the equational reasoning in the style that most people are used to.
and it doesn't seem /that/ great an imposition.
I disagree, this is a massive imposition, and requires lots of refactoring, and is just a little bit ugly. What to go in a where should be the programmers decision, not the decision based on which hoops one has to hop through to write a debuggable Haskell program. Thanks Neil _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe