Example program:
{-# LANGUAGE OverloadedStrings #-}
import qualified Data.ByteString as BS
import System.IO
import System.Process
main :: IO ()
main = do
(h_read, h_write) <- createPipe
let msg = "233"
BS.hPut h_write msg
hFlush h_write
BS.hGet h_read (BS.length msg) >>= print
This prints "233" on Linux/macOS, but the program hangs indefinitely on Windows. Tested against ghc-8.10.1 which ships process-1.6.8.2, both on my Windows 10 laptop and on GitHub Actions.