DuplicateRecordFields(+ OverloadedLabels)拡張機能を使用しています。レコードの更新で曖昧さを解消できない状況に遭遇しました。ここでDuplicateRecordFieldsでレコードの曖昧さを修正する
は簡単な例です:
data A = A { name :: String }
data B = B { name :: String }
combine :: A -> B -> A
combine a b = a { name = name b }
は、この作品を作るための方法はありますか?
'-XNamedFieldPuns'では' B {name} = a {name = name} 'を組み合わせることもできます。 – danidiaz
@danidiaz _can_私たちはこれを行いますか?まあ、あなたがそう言うなら。私たちはどんな速度でもできません。 '{name = name}'は完全に混乱しています。これらのすべての拡張は、この方法ではうまく機能しない古いレコードシステム内のユニドーマックなハックです。 'OverloadedRecordFields'が' HasField'クラスとmagic-hash構文を使って正常に動作するとき、これは別のペアになりますが、それまではレンズライブラリが提供するものに固執します。 – leftaroundabout