(汎用) サービスを使用して IO アクションを実行するアプリケーションがあります。通常の IO 関数 (Save、SaveAs など) を F# 型に集約したいのですが、コンパイラはこの表記法を嫌うようです。
type InputService<'a> = {
// Fine
SomeFunc : 'a -> Option<'a>
// Error (VS2012): "Anonymous type variables are not permitted in this declaration"
Save : 'a -> ()
// Error (see above)
Load : () -> 'a
}
このようなステートフル関数が慣用的でない可能性があることは承知しています。実際には、UI プロンプトやファイル パスなどをカリー化する予定ですが、型でその関数シグネチャを定義することは可能ですか?