title: Haskell optional type parameter
body: <p>In haskell, how do you define an optional type parameter:</p>
  
  <pre><code>data Car a b c = Car { company :: a
                       , model :: b
                       , year :: c  
                       }
  -- I want to return this type if `c` is not provided
  data Car a b = Car { company :: a  
                     , model :: b
                     }
  </code></pre>
  
  <p>In above, I wanna have have an optional type <code>c</code> and based on whether it's provided or not return a slightly different type. How do I do this? Am I doing this totally wrong?</p>