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