title: Haskell: Algebraic data vs Tuple
body: <pre><code>data Ray = Ray Vector Vector
  </code></pre>
  
  <p>or</p>
  
  <pre><code>type Ray = (Vector, Vector)
  </code></pre>
  
  <p>Which is preferred in idiomatic haskell? Why should I use one over the other?<br>
  I don't care about performance.</p>
  
  <p>It seems to make little difference with functions, e.g.:</p>
  
  <pre><code>trace :: Ray -&gt; …
  
  trace (Ray x d) = …
  -- OR
  trace (x, d) = …
  </code></pre>