F#には静的Duck Typingを行うための(非常にマイナーな)(そして難解な)仕組みがありますが、 プロパティ(setter)にアクセスする方法は少し特殊です。 マイナーすぎて多分ググってもほとんどヒットしないと思うので、一応サンプルを載せておきます。 結論から言うと、setterのシグネチャを指定する際には when ^a : (member set_MyProperty : int -> unit) のようにします。 これを応用して、色んな型の"Value"にアクセスするサンプルコードを書いてみました。 // 普通のプロパティを持つ普通のクラス type MyClass(value) = member val Value : int = value with get, set // 変更可能なラベルを持つレコード型 type MyRecord = { mutable Value :
![Nobuhisa's diary](https://cdn-ak-scissors.b.st-hatena.com/image/square/06a15c64ba0ceec233d86d71001ebb29a9dcbf5d/height=288;version=1;width=512/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png)