title: What does (x:_) and [x:_] mean?
body: <pre><code>head' :: [a] -&gt; a
  head' [] = error "No head for empty lists!"
  head' (x:_) = x
  
  head' :: [a] -&gt; a
  head' xs = case xs of [] -&gt; error "No head for empty lists!"
                        (x:_) -&gt; x
  </code></pre>
  
  <p>I am asking for a fairly easy question which I don't understand.
  In the code above, I see that it takes a list for an input. 
  But on the third line, it says <code>(x:_)</code> which confuses me.
  Can anyone explain to me why they wrote <code>(x:_)</code> instead of <code>[x:_]</code>?</p>
  
  <p>And plus, I don't understand what <code>(x:_)</code> means.</p>
  
  <p>Thank you.</p>