Here's the Prelude imports I see at the moment. Didn't chase down the dependencies in all the code initially and now I see that GHC.Show does import GHC.List. Still, I suspect this has something to do with fusion nonetheless. #ifdef __GLASGOW_HASKELL__ import GHC.Base import GHC.IOBase import GHC.Exception import GHC.Read import GHC.Enum import GHC.Num import GHC.Real import GHC.Float import GHC.Show import GHC.Err ( error, undefined ) #endif (from http://www.haskell.org/ghc/docs/latest/html/libraries/base/src/Prelude.html) --s On Dec 22, 2007 4:44 PM, Stefan O'Rear <stefanor@cox.net> wrote:
On Sat, Dec 22, 2007 at 04:40:00PM -0500, Sterling Clover wrote:
I'm curious if you get the same performance difference importing GHC.Listinstead of Data.Char? I chased some dependencies, and Data.Char imports GHC.Arr, which in turn imports GHC.List, which provides a bunch of fusion rules pragmas that would probably optimize your (++) usage. If this is the case, not sure if its a bug or not, but all this will have to be thought through as more stream fusion is rolled out anyway, I suspect? --S
The Prelude imports GHC.List, iirc.
Stefan
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFHbYVTFBz7OZ2P+dIRAi02AJ41CyIVwCRLH2MU51Sc8Rjrtgxy+ACeL1m8 F2a0Id2PErsKgjOyggkT8Ig= =T0A3 -----END PGP SIGNATURE-----