title: Implementing phantom types in C#
body: <p>I'm looking to use "phantom types" to implement type-safe identifiers. There's a question <a href="https://stackoverflow.com/questions/3583679/implementing-phantom-types-in-f">here</a> about doing this in F#.</p>
  
  <p>I'd like to do this in C#. How?</p>
  
  <p>I've got a solution (which has problems), so I'll post it as a possible answer to see if anyone can improve it.</p>