[Haskell-cafe] Trying to write an Embedded DSL that threads a monad?