Re-enable bootstrapping: More Ptr trouble, now that it's (almost) abstract...
import Foreign ( newArray )
import Word ( Word8, Word32 )
-import Foreign ( Ptr(..), mallocBytes )
+import Foreign ( Ptr, mallocBytes )
import IOExts ( trace, unsafePerformIO )
import IO ( hPutStrLn, stderr )
\end{code}
import Linker ( lookupSymbol )
import List ( intersperse, sortBy, zip4 )
-import Foreign ( Ptr(..), castPtr, mallocBytes, pokeByteOff, Word8 )
+import Foreign ( Ptr, castPtr, mallocBytes, pokeByteOff, Word8 )
import CTypes ( CInt )
import Exception ( throwDyn )
import FastString ( FastString(..) )
import Util ( lengthIs, listLengthCmp )
-import Foreign ( Storable(..), Word8, Word16, Word32, Word64, Ptr(..),
+import Foreign ( Storable(..), Word8, Word16, Word32, Word64,
malloc, castPtr, plusPtr )
import Bits ( Bits(..), shiftR )
import Monad ( liftM )
import GlaExts ( Int(I#), addr2Int# )
-import Ptr ( Ptr(Ptr) )
+#if __GLASGOW_HASKELL__ < 503
+import Ptr ( Ptr(..) )
+#else
+import GHC.Ptr ( Ptr(..) )
+#endif
\end{code}
%************************************************************************
import Data.Array.MArray ( MArray, newArray_, readArray, writeArray )
import Data.Array.ST ( castSTUArray )
import Data.Array.Base ( UArray(..) )
-import Foreign.Ptr ( Ptr, nullPtr )
-import Foreign ( Word16, Ptr(..), free )
+import Foreign.Ptr ( nullPtr )
+import Foreign ( Word16, free )
import System.Mem.Weak ( addFinalizer )
import Data.Int ( Int64 )
#if __GLASGOW_HASKELL__ >= 503
import GHC.Arr ( Array(..) )
import GHC.IOBase ( IO(..) )
+import GHC.Ptr ( Ptr(..) )
#else
import PrelArr ( Array(..) )
import PrelIOBase ( IO(..) )
+import Ptr ( Ptr(..) )
#endif
\end{code}
import PrelAddr ( Addr(..) )
#else
import Addr ( Addr(..) )
-import Ptr ( Ptr(..) )
#endif
#if __GLASGOW_HASKELL__ < 503
import PrelArr ( STArray(..), newSTArray )
import PrelAddr ( Addr(..) )
#else
import Addr ( Addr(..) )
+#if __GLASGOW_HASKELL__ < 503
import Ptr ( Ptr(..) )
+#else
+import GHC.Ptr ( Ptr(..) )
+#endif
#endif
-- Don't import Util( assertPanic ) because it makes a loop in the module structure
import Panic ( panic )
#else
import Addr ( Addr(..) )
+#if __GLASGOW_HASKELL__ < 503
import Ptr ( Ptr(..) )
+#else
+import GHC.Ptr ( Ptr(..) )
+#endif
#endif
#if __GLASGOW_HASKELL__ < 501