The show function in Haskell doesn\'t seem to do what it should:
Prelude> let str = \"stack\\n\\noverflow\" Prelude> putStrLn str stack overfl
I'm not really sure the point in what your trying to do. It would help if you clarified a bit. Show is doing what it is supposed to do. Show simply produces a string containing what it was shown.