[Haskell-cafe] better way to do this?