title: When should I use a record over a tuple?
body: <p>I am trying to practice Domain Driven Design in F# and stumbled across the following question:</p>
  
  <p>Why would I use a record when using a tuple appears to require less syntax and appears to be more powerful in regards to pattern matching and just overall usage scenarios?</p>
  
  <p>For example, I feel as if I no longer have to create a record type just to implement a discriminated union if I were to use a tuple instead.</p>
  
  <pre><code>type Name = { First:string 
                Middle:string option
                Last:string }
  
  type Duration = { Hours:int
                    Minutes:int
                    Seconds:int }
  
  type Module = 
      | Author of Name
      | Title of string
      | Duration of Duration
  
  let tryCreateName (first, middle, last) =
      { First=first; Middle=Some middle; Last=last }
  
  let tryCreateDuration (hours, minutes, seconds) =
      { Hours=hours; Minutes=minutes;Seconds=seconds }
  
  let name = tryCreateName ("Scott", "K", "Nimrod")
  
  let hours = 1
  let minutes = 30
  let seconds = 15
  
  let duration = tryCreateDuration (hours, minutes, seconds)
  </code></pre>
  
  <p>Are my thoughts accurate?</p>
  
  <p>Are tuples desired over records in most scenarios?</p>