In GHC 8:Come disambiguare la funzione selettore?
{-# LANGUAGE DuplicateRecordFields #-}
data Dog = Dog { name::String }
data Human = Human { name::String }
dog = Dog "Spike"
main = putStrLn $ name dog
Questo codice non può essere compilato:
Ambiguous occurrence `name'
It could refer to either the field `name', defined at A.hs:4:22
or the field `name', defined at A.hs:3:18
Come recuperare correttamente il nome del mio cane?
Ah, campi di record ambigui ... chiedo se la catena di estensioni di kludgy fix è infinita? Se sì, avremo bisogno di un 'DisambiguateRecordFieldsDisambiguationExte nsione? estensione? - ... Assicuratevi di controllare [la libreria 'records' di Nikita Volkov] (https://nikita-volkov.github.io/record/), che dovrebbe rendere completamente inutili queste estensioni. - (FTR: Non penso che gli autori di queste estensioni stiano facendo un brutto lavoro, infatti ho usato 'RecordWildCards' in passato e ho trovato che funziona ragionevolmente bene, tuttavia, credo che nel complesso non sia l'approccio giusto .) – leftaroundabout