Hello, I would do (not that concise): toMaybe :: Music_Data_ -> (Maybe Note, Maybe Direction, Maybe Sound) toMaybe (Music_Data_1 n) = (Just n, Nothing, Nothing) toMaybe (Music_Data_4 d) = (Nothing, Just d, Nothing) toMaybe (Music_Data_9 s) = (Nothing, Nothing, Just s) catMaybes3 (a,b,c) = (catMaybes a, catMaybes b, catMaybes c) sortOutMusicData :: [Music_Data_] -> ([Note],[Direction],[Sound]) sortOutMusicData = catMaybes3 . unzip3 . map toMaybe Corentin Michael Mossey <mpm@alumni.calt ech.edu> Pour Envoyé par : beginners@haskell.org beginners-bounce cc s@haskell.org Objet [Haskell-beginners] a problem 23/06/2010 10:08 Can I get a suggestion for a concise way to write 'sortOutMusicData' as described here? This is MusicXML-related. data Music_Data_ = Music_Data_1 Note | Music_Data_4 Direction | Music_Data_9 Sound ... sortOutMusicData :: [Music_Data_] -> ([Note],[Direction],[Sound]) _______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners