title: All combinations of elements of two lists in Haskell
body: <p>Given two lists, <code>[a, b]</code> and <code>[c, d]</code>, I'd like to get the following result:</p>
  
  <pre class="lang-hs prettyprint-override"><code>[(a,c), (a,d), (b,c), (b,d)]
  </code></pre>
  
  <p>How can I do this in Haskell? Is there a built-in function for this, or should I implement one myself?</p>