Amusingly, this little error in the GHC manual came from the original
SPJ proposal for pattern guards from 1997 and even slipped into the
Haskell Workshop 2000 paper by SPJ and Martin Erwig. It's almost 10
years old.
</para>
<programlisting>
-clunky env var1 var1 = case lookup env var1 of
+clunky env var1 var2 = case lookup env var1 of
Nothing -> fail
Just val1 -> case lookup env var2 of
Nothing -> fail
</para>
<programlisting>
-clunky env var1 var1
+clunky env var1 var2
| Just val1 <- lookup env var1
, Just val2 <- lookup env var2
= val1 + val2