トップ回答者
[F#] クラスにプライベートメンバを定義する事はできないのか

質問
-
F# でクラスを作った時、プライベートメンバは定義できないのでしょうか。
例えば次のようなクラスを作りました。
type Hoge () = let a = 1 member private this.A with get () = a static member ( + ) (h1 : Hoge, h2 : Hoge) = ... 適当な計算 ---
このときプロパティ A へのアクセスを、このクラス Hoge のユーザからはできず、かつ、静的メンバ ( + ) からはできるようにしたいです。
しかし上記の記述だと、このクラス Hoge のユーザからも何故かアクセスできてしまいます (コンパイルエラーにならない)。
なんとか意図したアクセス制限をかける事はできないでしょうか。
ちなみに A はプロパティである必要は特にありません。本質的には単に let a で宣言した a へのアクセスを制限したいだけです。