title: Haskell and multiple conditions
body: <p>If I have multiple conditions that are only slightly different, what is the best way to write a function (considering and inability to nest guards) of the form:</p>
  
  <pre><code>f | a &amp;&amp; b &amp;&amp; c  = 1
    | a &amp;&amp; b &amp;&amp; d  = 2
    | a &amp;&amp; b &amp;&amp; e  = 3
    | a &amp;&amp; g &amp;&amp; e  = 4
  </code></pre>
  
  <p>etc</p>
  
  <p>Imagine there are more a lot more conditions. Ideally I would like to write a nested if that would check for a then b  then something else, but I have been told that this not possible in Haskell.</p>
  
  <p>Also, in the example. If the first line returns falls, are the conditions a and b checked again if they not defined in a where clause?</p>