一部のコードを VS2010 b1 に含まれる F# の最新バージョンに移行しているときに問題が発生しました。利用可能な回避策があるかどうかを知りたいのですが、利用できない場合は、F# コンパイラの動作が変更されなかった理由を知りたいです。シナリオをサポートします。
type Foo(a) =
[<OverloadID("CurriedAbc")>]
member public x.Abc (p:(oneType * anotherType) seq) otherParm = method impl...
//this overload exists for better compatibility with other languages
[<OverloadID("TupledAbc")>]
member public x.Abc (p:Dictionary<oneType, anotherType>, otherParm) =
x.Abc(p |> Seq.map(fun kvp -> (kvp.Key, kvp.Value))) otherParm
このコードは、次のコンパイル時エラーを生成します。
エラー FS0191: このメソッドの 1 つ以上のオーバーロードにカリー化された引数があります。タプル形式で引数を取るようにこれらのメンバーを再設計することを検討してください
これは F# 1.9.6.2 (9 月 CTP) で問題なく動作していたことに注意してください。