
#9542: GHC-IO-Handle-Text.hPutStr' and writeBlocks look like they need refactoring -------------------------------------+------------------------------------- Reporter: dfeuer | Owner: Type: task | Status: new Priority: normal | Milestone: Component: | Version: 7.8.2 libraries/base | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: | Related Tickets: None/Unknown | Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by dfeuer): There are probably actually some list fusion opportunities in this area these days. `hPutChars` is apparently low-performance anyway, but I think it might as well be written {{{#!hs hPutChars :: Handle -> [Char] -> IO () hPutChars handle = mapM_ (hPutChar handle) }}} More importantly, I would conjecture that we can probably fuse `writeBlocks`. Call Arity seems to allow a fusing `foldM`, and `writeBlocks` seems to have that general structure. The devil may have details, of course. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9542#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler