title: Is there a way to have tuples with named fields in Scala, similar to anonymous classes in C#?
body: <p>See: <a href="https://stackoverflow.com/questions/793415/use-of-anonymous-class-in-c">Can I specify a meaningful name for an anonymous class in C#?</a></p>
  
  <p>In C# you can write:</p>
  
  <pre><code>var e = new { ID = 5, Name= "Prashant" };
  assertEquals( 5, e.ID )
  </code></pre>
  
  <p>But in Scala I end up writing:</p>
  
  <pre><code>var e = (5, "Prashant")
  assertEquals( 5, e._1 )
  </code></pre>
  
  <p>Scala maintains type safety through the use of generics (as does C#), but loses the readability of the name of each field, e.g I use "_1" instead of "ID".</p>
  
  <p>Is there anything like this in Scala?</p>