hPutStr is:exact

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:
A synonym for hPut, for compatibility
Write a string to a handle.
Lifted hPutStr
Lifted hPutStr
Computation hPutStr hdl s writes the string s to the file or channel managed by hdl. This operation may fail with:
Writing entire data.
Write a string like value a to a supplied Handle.
Like the normal hPutStr, but encodes the output using an encoding.
Write a string to a handle