Я использую много разных записей в программе, причем некоторые из них используют одинаковые имена полей, например
data Customer = Customer { ..., foo :: Int, ... }
data Product = Product { ..., foo :: Int, ... }
Теперь, когда функция доступа "foo" определена дважды, я получаю ошибку "Несколько объявлений". Один из способов избежать этого - использовать разные модули, которые полностью импортируются, или просто переименовывать поля (чего я не хочу делать).
Каков официально предлагаемый способ решения этой проблемы в Haskell?