When is it useful to use "strict wildcard" in Haskell, and what does it do? : <p>I was looking at some Haskell source code and came across a pattern match with <code>!_</code>, the code is here: <a href="http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.List.html#unsafeTake">http://hackage.haskell.org/package/base-4.9.0.0/docs/src/GHC.List.html#unsafeTake</a></p>

<pre><code>take n xs | 0 &lt; n     = unsafeTake n xs
          | otherwise = []

-- A version of take that takes the whole list if it's given an argument less
-- than 1.
{-# NOINLINE [1] unsafeTake #-}
unsafeTake :: Int -&gt; [a] -&gt; [a]
unsafeTake !_  []     = []
unsafeTake 1   (x: _) = [x]
unsafeTake m   (x:xs) = x : unsafeTake (m - 1) xs
</code></pre>

<p>I don't really understand how the "strict wildcard" works and why it's useful for this function (or any other function).</p>
