我有一个使用(通用)服务来执行 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 提示、文件路径等中进行柯里化,但是否可以在我的类型中定义该函数签名?