title: Haskell IO - Output not printed until program exits
body: <p>If I write a program like:</p>
  
  <pre><code>main = do
      putStrLn "Start"
      i &lt;- getLine
      putStrLn $ "Exit " ++ i
  </code></pre>
  
  <p>When I run it, the output is not given until execution finishes, It just waits for input and then all the output is given at once instead of the first string being printed before the input prompt occurs. </p>
  
  <p>I've tried compiling the program and running in cygwin, also tried using the <code>runhaskell</code> command. I'm on windows 7.</p>
  
  <p>Does anyone know what the problem could be?</p>