title: Why does the 2-tuple Functor instance only apply the function to the second element?
body: <pre><code>import Control.Applicative
  
  main = print $ fmap (*2) (1,2)
  </code></pre>
  
  <p>produces <code>(1,4)</code>. I would expect it it to produce <code>(2,4)</code> but instead the function is applied only to the second element of the tuple.</p>
  
  <p><strong>Update</strong> I've basically figured this out almost straight away. I'll post my own answer in a minute..</p>