title: Short circuiting (&&) in Haskell
body: <p>A quick question that has been bugging me lately. Does Haskell perform all the equivalence test in a function that returns a boolean, even if one returns a false value? </p>
  
  <p>For example</p>
  
  <pre><code>f a b = ((a+b) == 2) &amp;&amp; ((a*b) == 2)
  </code></pre>
  
  <p>If the first test returns false, will it perform the second test after the <code>&amp;&amp;</code>? Or is Haskell lazy enough to not do it and move on?</p>