title: How to do argument validation of F# records
body: <p>F# makes it easy to define types such as</p>
  
  <pre><code>type coords = { X : float; Y : float }
  </code></pre>
  
  <p>but how do I define constraints/check arguments for the constructor without going into the more verbose class definition syntax? E.g. if I want coords to start from (0,0) or throw an exception.</p>
  
  <p>Moreover, if I change my definition to a class I need to implement Equals() etc. all the boiler plate code I don't want (and which I have in C# that I'm trying to get away from).</p>