Based on a number of comments in this thread, I feel like the answer to “how to do user facing records in 2024” is “Do what amazonka-2.0 does”
1 Like
I wish I could take credit, but that predates my maintainership. It does seem to have worked well.
2 Likes
My answer is no. If you expect the qualified imports, you still don’t need to scatter your records across separate modules. The disambiguation requires different module prefixes, not different source modules. So instead of
import qualified Library.Record1 as Record1
import qualified Library.Record2 as Record2
the user can say
import qualified Library(Record1(..)) as Record1
import qualified Library(Record2(..)) as Record2
with the same effect.