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