# What are you supposed to do about -Wambiguous-fields?

**URL:** <https://discourse.haskell.org/t/what-are-you-supposed-to-do-about-wambiguous-fields/9545>\
**Category:** Learn\
**Created:** [May 13, 2024, 5:46pm UTC](https://discourse.haskell.org/t/what-are-you-supposed-to-do-about-wambiguous-fields/9545 "2024-05-13T17:46:50Z")\
**Posts on this page:** 1\
**Showing post:** 22

<div class="post-metadata">

**Author:** ![george.fst](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/george.fst/32/4933_2.png) [@george.fst](https://discourse.haskell.org/u/george.fst)\
**Post date:** [May 21, 2024, 11:08am UTC](https://discourse.haskell.org/t/what-are-you-supposed-to-do-about-wambiguous-fields/9545/22 "2024-05-21T11:08:24Z")

</div>

I suspect that when [the proposal to add the warning](https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0366-no-ambiguous-field-access.rst#migration-strategy) was written, it wasn’t anticipated that development of `OverloadedRecordUpdate` (then part of the proposed `RecordDotSyntax` along with what is now known as `OverloadedRecordDot`) would take so long.

This has led to an unfortunate state of affairs where we’re warned of the need to migrate before the ideal migration strategy actually exists, since `OverloadedRecordUpdate` is still experimental, and in practice basically unusable due to the need for manual `setField` instances.

So, like others, I’ve ended up just disabling the warning everywhere I’ve seen it so far, on the assumption that the `DuplicateRecordFields` behaviour won’t actually change before `OverloadedRecordUpdate` has been fully implemented. And I would strongly urge any GHC developers on this thread to ensure that’s the case, since anything else would be a very annoying regression.

I fear this whole situation is going to confuse everyone who hasn’t totally kept up with the status of the many record extensions. Which, anecdotally, seems to be almost everyone.

tl;dr I don’t think there’s currently a satisfying answer to the actual title of this thread. (EDIT: at least in the record-_update_ case which is what we’re discussing - the same warning also covers ambiguous _selection_, but there are better workarounds for that)

---

_[View the full topic](https://discourse.haskell.org/t/what-are-you-supposed-to-do-about-wambiguous-fields/9545)._
