Generating shell scripts from Haskell using a shell monad