Modeling music in Haskell