F# を使用すると、次のような型を簡単に定義できます。
type coords = { X : float; Y : float }
しかし、より詳細なクラス定義構文に入ることなく、コンストラクターの制約/チェック引数を定義するにはどうすればよいですか? たとえば、座標を (0,0) から開始するか、例外をスローする場合。
さらに、定義をクラスに変更する場合は、Equals() などを実装する必要があります。不要な定型コード (および C# で回避しようとしているもの) をすべて実装する必要があります。