hPutStr package:ghc-internal

Computation hPutStr hdl s writes the string s to the file or channel managed by hdl. Note that hPutStr is not concurrency safe unless the BufferMode of hdl is set to LineBuffering or BlockBuffering:
>>> let f = forkIO . hPutStr stdout

>>> in do hSetBuffering stdout NoBuffering; f "This is a longer string"; f ":D"; f "Hello Haskell"; pure ()
This: HDiesl lao  lHoansgkeerl lstring
>>> let f = forkIO . hPutStr stdout

>>> in do hSetBuffering stdout LineBuffering; f "This is a longer string"; f ":D"; f "Hello Haskell"; pure ()
This is a longer string:DHello Haskell
This operation may fail with:
The same as hPutStr, but adds a newline character. This operation may fail with the same errors, and has the same issues with concurrency, as hPutStr!