[Haskell-cafe] Looking for a more functional way to do this