An implementation of the Supermarket kata in Haskell