[Haskell-cafe] problem implementing an EDSL in Haskell