[Haskell-cafe] Generalised merge