J'utilise beaucoup d'enregistrements différents dans un programme, certains d'entre eux utilisant les mêmes noms de champs, par ex.Éviter la pollution des espaces de noms dans Haskell
data Customer = Customer { ..., foo :: Int, ... }
data Product = Product { ..., foo :: Int, ... }
Maintenant que la fonction accesseur « foo » est définie, je reçois deux fois l'erreur « Plusieurs déclarations de ». Une façon d'éviter cela serait d'utiliser différents modules importés complets, ou simplement de renommer les champs (ce que je ne veux pas faire).
Quelle est la manière officiellement suggérée de gérer cela avec Haskell?
Je partage votre douleur. Je viens du monde OO. – gawi
Donc, il semble que je vais aller avec les importations qualifiées - au moins pour ce projet. Merci à tous pour vos réponses! C'est un de ces moments où les macros Scheme me manquent pour me débarrasser des violations DRY lors de l'utilisation des typeclasses ... – lbruder
J'ai trouvé [cette page du projet] (https://ghc.haskell.org/trac/ghc/wiki/ Records/OverloadedRecordFields) à propos de l'extension 'OverloadedRecordFields' pour GHC afin de permettre à plusieurs types de données d'enregistrements de partager les mêmes noms de champs. – Alexey