Haskell 2010 では、同じファイルに重複したフィールドラベルを定義できない。たとえば、以下はエラーになる。 data Foo = Foo { same :: Int } data Bar = Bar { same :: Float } -- これはダメ この問題を解決する案は、OverloadedRecordFields と呼ばれ、苦難の歴史を持つ。実装があるにもかかわらず、 実装が一枚岩 コードの複雑になる割に利益が少ない などの理由により、GHC へはマージされずにいた。現在では、OverloadedRecordFieldsは、三つの拡張へと分割された: DuplicateRecordFields OverloadedLabels Magic type classes この中、1. と 2. が GHC 8.0 に入る。 DuplicateRecordFields Dupli