title: Signal (Int, Int) not recognised as (Int, Int) tuple in some cases
body: <p>Depending on the return type, Signal (Int, Int) is not recognised as a tuple of (Int, Int). </p>
  
  <p>Consider the following code: </p>
  
  <pre><code>import Graphics.Element exposing (..)
  import Mouse
  
  
  relativeMouseElement : (Int, Int) -&gt; Element
  relativeMouseElement mp = show (fst mp - 1000, snd mp - 1000)
  
  
  relativeMouseTuple : (Int, Int) -&gt; (Int, Int)
  relativeMouseTuple mp = (fst mp - 1000, snd mp - 1000)
  
  main =
  --  Signal.map relativeMouse Mouse.position
      relativeMouseTuple Mouse.position
  </code></pre>
  
  <p><code>Signal.map relativeMouse Mouse.position</code> works just fine, displays (-1000, -1000) to the browser and the values are adjusted according to the mouse movement. </p>
  
  <p><code>relativeMouseTuple Mouse.position</code> This though does not work. The complication error I get is the following: </p>
  
  <pre><code>Function `relativeMouseTuple` is expecting the argument to be:
  
      ( Int, Int )
  
  But it is:
  
      Signal ( Int, Int )
  </code></pre>
  
  <p>I find this very weird. In both case the first argument is Signal (Int, Int) and in the second case it results to a type error. </p>
  
  <p>Any ideas?</p>