title: Redundancy regarding product types and tuples in Haskell
body: <p>In Haskell you have product types and you have tuples.</p>
  
  <p>You use tuples if you don't want to associate a dedicated type with the value, and you can use product types if you wish to do so.</p>
  
  <p>However I feel there is redundancy in the notation of product types</p>
  
  <pre><code>data Foo = Foo (String, Int, Char)
  data Bar = Bar String Int Char
  </code></pre>
  
  <p>Why are there both kinds of notations? Is there any case where you would prefer one the other? </p>
  
  <p>I guess you can't use record notation when using tuples, but that's just a convenience problem. Another thing might be the notion of order in tuples, as opposed to product types, but I think that's just due to the naming of the functions <code>fst</code> and <code>snd</code>.</p>