
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
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-----