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