The OverloadedRecordFields family of extensions for GHC allow multiple record datatypes to share the same field names, and make it possible for type information to disambiguate selectors. For more information, see:

Content previously on this page has been moved to the SORF page.


Add ORF to the ticket's keywords to include it in these lists.

Open Tickets:

Implement TDNR
Interaction between ORF and record pattern synonyms needs to be resolved.
Unable to infer type when using DuplicateRecordFields
Allow applying type to label
Allow labels starting with uppercase with OverloadedLabels
Strange requirement for re-exported duplicate record fields
ghci :browse does not work with DuplicateRecordFields
-XDuplicateRecordFields breaks record expression splices
Field imposters with DuplicateRecordFields and NamedFieldPuns.

Closed Tickets:

DuplicateRecordFields + TemplateHaskell
Fixity of field-deconstructors incorrect
Infix declarations for record fields with DuplicateRecordFields are broken
Interaction between ORF and record pattern synonyms needs to be resolved.
Auto complete in ghci shows $sel:function:Type for DuplicateRecordFields fields
Regression using NamedFieldPuns with qualified field names
DuplicateRecordFields appears not to work in GHCi
RebindableSyntax and OverloadedLabels
UnboxedTuple makes overloaded labels fail to parse
unused-top-binds wrongly warns about underscore-prefixed field names when DuplicateRecordFields enabled
Compilation fails with a panic: get_op runContT
record construction accepts local unqualified name instead of qualified imported name
GHC 8.2 gives misleading error message for out-of-scope infix type constructor



The extension was implemented in 2013 as a Google Summer of Code project, by Adam Gundry under the mentorship of Simon Peyton Jones.

Last modified 6 weeks ago Last modified on Feb 3, 2018 3:49:46 PM