I really miss having something like a [`struct`][1] in Mathematica. I know of (and regularly use) a couple of programming techniques which feel like a `struct` (e.g., using [downvalues][2]), but are ultimately unsatisfactory (perhaps I'm using downvalues incorrectly). What programming approaches are available which provide similar functionality to a `struct`?


  [1]: http://en.wikipedia.org/wiki/Struct_%28C_programming_language%29
  [2]: http://reference.wolfram.com/mathematica/ref/DownValues.html