
Hi Haskellers, since I learned the basics of algebraic data types, I have a question. First I thought I could answer it after getting a little more used to Haskell's type system. But now I prefer to ask here. Given the following example code, how can I "insert" a cross reference from the track "Money for Nothing" to the artist "Sting" who sang the background vocals? I know it must be a new MusicCollection, but I'd like to know the shortest general code to construct it. data MusicCollection = MusicCollection [Artist] deriving (Show) data Artist = Artist String [Album] deriving (Show) data Album = Album String [Track] deriving (Show) data Track = Track String [Artist] -- featured Artists are cross referenced, so Show cannot be derived collection = MusicCollection [direStraits, sting] direStraits = Artist "Dire Straits" [brothersInArms] brothersInArms = Album "Brothers in Arms" [moneyForNothing] moneyForNothing = Track "Money for Nothing" [] Thanks in advance Tim