A multi-map for Haskell