The following code will on Linux print three strings each followed by a NULL byte:
module Main where
putStr0 = putStr $ s ++ "\0"
main = do
putStr0 "Hello"
putStr0 "Hello"
putStr0 "Hello"
On Windows however it will print nothing! In order to trigger printing I have to change the definition of putStr0 to
putStr0 = putStr (s ++ "\0") >> hFlush stdout
Is this difference in behaviour due to a bug in GHC on Windows or just a quirkiness of the platform?
/M