
I'm trying to refactor the integer-gmp package to fix the breakage explained in #5384. During the refactoring I * moved GHC.Integer.Type to GHC.Integer.GMP.Type, and * added a new GHC.Integer.Type module that re-exports parts of the interface now exposed by GHC.Integer.GMP.Type The content of GHC.Integer.Type is just: {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_HADDOCK hide #-} -- If you change the module name or the export list you must update -- compiler/prelude/PrelNames.lhs. module GHC.Integer.Type ( Integer(..) , plusInteger , timesInteger , smallInteger , integerToWord , integerToInt , minusInteger , negateInteger , eqInteger , neqInteger , absInteger , signumInteger , leInteger , gtInteger , ltInteger , geInteger , compareInteger , gcdInteger , lcmInteger , andInteger , orInteger , xorInteger , complementInteger , shiftLInteger , shiftRInteger ) where import GHC.Integer.GMP.Type GHC doesn't seem to like this at all. It can no longer find the GHC.Integer.Type.Integer type: $ "inplace/bin/ghc-stage1" -H64m -O -fasm -package-name base-4.4.0.0 -hide-all-packages -i -ilibraries/base/. -ilibraries/base/dist-install/build -ilibraries/base/dist-install/build/autogen -Ilibraries/base/dist-install/build -Ilibraries/base/dist-install/build/autogen -Ilibraries/base/include -optP-DOPTIMISE_INTEGER_GCD_LCM -optP-include -optPlibraries/base/dist-install/build/autogen/cabal_macros.h -package ghc-prim-0.2.0.0 -package integer-gmp-0.3.0.0 -package rts-1.0 -package-name base -XHaskell98 -XCPP -O -dcore-lint -no-user-package-conf -rtsopts -odir libraries/base/dist-install/build -hidir libraries/base/dist-install/build -stubdir libraries/base/dist-install/build -hisuf hi -osuf o -hcsuf hc -c libraries/base/./Data/Maybe.hs -o libraries/base/dist-install/build/Data/Maybe.o libraries/base/Data/Maybe.hs:70:13: Can't find interface-file declaration for type constructor or class integer-gmp:GHC.Integer.Type.Integer Probable cause: bug in .hi-boot file, or inconsistent .hi file Use -ddump-if-trace to get an idea of which file caused the error When deriving the instance for (Eq (Maybe a)) Here's the -ddump-if-trace log: $ "inplace/bin/ghc-stage1" -H64m -O -fasm -package-name base-4.4.0.0 -hide-all-packages -i -ilibraries/base/. -ilibraries/base/dist-install/build -ilibraries/base/dist-install/build/autogen -Ilibraries/base/dist-install/build -Ilibraries/base/dist-install/build/autogen -Ilibraries/base/include -optP-DOPTIMISE_INTEGER_GCD_LCM -optP-include -optPlibraries/base/dist-install/build/autogen/cabal_macros.h -package ghc-prim-0.2.0.0 -package integer-gmp-0.3.0.0 -package rts-1.0 -package-name base -XHaskell98 -XCPP -O -dcore-lint -no-user-package-conf -rtsopts -odir libraries/base/dist-install/build -hidir libraries/base/dist-install/build -stubdir libraries/base/dist-install/build -hisuf hi -osuf o -hcsuf hc -c libraries/base/./Data/Maybe.hs -o libraries/base/dist-install/build/Data/Maybe.o -ddump-if-trace FYI: cannont read old interface file: libraries/base/dist-install/build/Data/Maybe.hi: openBinaryFile: does not exist (No such file or directory) Considering whether to load base:GHC.Base Reading interface for base:GHC.Base; reason: GHC.Base is directly imported readIFace libraries/base/dist-install/build/GHC/Base.hi updating EPS_ Considering whether to load ghc-prim:GHC.Generics Reading interface for ghc-prim:GHC.Generics; reason: GHC.Generics is directly imported readIFace /usr/local/google/src/ghc/libraries/ghc-prim/dist-install/build/GHC/Generics.hi updating EPS_ updating EPS_ Considering whether to load base:GHC.Base {- SYSTEM -} loadHiBootInterface base:Data.Maybe Considering whether to load ghc-prim:GHC.Types {- SYSTEM -} Reading interface for ghc-prim:GHC.Types; reason: Checking fixity for : readIFace /usr/local/google/src/ghc/libraries/ghc-prim/dist-install/build/GHC/Types.hi updating EPS_ Considering whether to load ghc-prim:GHC.Types {- SYSTEM -} Considering whether to load ghc-prim:GHC.Types {- SYSTEM -} Starting fork { Declaration for Monad Loading decl for GHC.Base.Monad updating EPS_ buildClass buildClass GHC.Base.T:Monad } ending fork Declaration for Monad Starting fork { Declaration for Functor Loading decl for GHC.Base.Functor updating EPS_ buildClass buildClass GHC.Base.T:Functor } ending fork Declaration for Functor tcImportDecl GHC.Classes.Eq Need decl for GHC.Classes.Eq Considering whether to load ghc-prim:GHC.Classes {- SYSTEM -} Reading interface for ghc-prim:GHC.Classes; reason: Need decl for GHC.Classes.Eq readIFace /usr/local/google/src/ghc/libraries/ghc-prim/dist-install/build/GHC/Classes.hi updating EPS_ Starting fork { Declaration for Eq Loading decl for GHC.Classes.Eq updating EPS_ buildClass buildClass GHC.Classes.T:Eq } ending fork Declaration for Eq Starting fork { Declaration for Ord Loading decl for GHC.Classes.Ord updating EPS_ buildClass buildClass GHC.Classes.T:Ord } ending fork Declaration for Ord Starting fork { Declaration for Generic Loading decl for GHC.Generics.Generic updating EPS_ buildClass buildClass GHC.Generics.T:Generic } ending fork Declaration for Generic Starting fork { Declaration for D1 Loading decl for GHC.Generics.D1 updating EPS_ } ending fork Declaration for D1 Starting fork { Declaration for C1 Loading decl for GHC.Generics.C1 updating EPS_ } ending fork Declaration for C1 Starting fork { Declaration for S1 Loading decl for GHC.Generics.S1 updating EPS_ } ending fork Declaration for S1 Starting fork { Declaration for NoSelector Loading decl for GHC.Generics.NoSelector updating EPS_ tcIfaceDecl4 GHC.Generics.NoSelector } ending fork Declaration for NoSelector Starting fork { Declaration for Rec0 Loading decl for GHC.Generics.Rec0 updating EPS_ } ending fork Declaration for Rec0 Starting fork { Declaration for Par0 Loading decl for GHC.Generics.Par0 updating EPS_ } ending fork Declaration for Par0 Starting fork { Declaration for U1 Loading decl for GHC.Generics.U1 updating EPS_ tcIfaceDecl4 GHC.Generics.U1 } ending fork Declaration for U1 Starting fork { Declaration for V1 Loading decl for GHC.Generics.V1 updating EPS_ tcIfaceDecl4 GHC.Generics.V1 } ending fork Declaration for V1 Starting fork { Declaration for :+: Loading decl for GHC.Generics.:+: updating EPS_ tcIfaceDecl4 GHC.Generics.:+: } ending fork Declaration for :+: Starting fork { Declaration for :*: Loading decl for GHC.Generics.:*: updating EPS_ tcIfaceDecl4 GHC.Generics.:*: } ending fork Declaration for :*: Starting fork { Declaration for Datatype Loading decl for GHC.Generics.Datatype updating EPS_ buildClass buildClass GHC.Generics.T:Datatype } ending fork Declaration for Datatype Starting fork { Declaration for Constructor Loading decl for GHC.Generics.Constructor updating EPS_ buildClass buildClass GHC.Generics.T:Constructor } ending fork Declaration for Constructor Starting fork { Declaration for Selector Loading decl for GHC.Generics.Selector updating EPS_ buildClass mkNewTyConRhs GHC.Generics.NTCo:T:Selector buildClass GHC.Generics.T:Selector } ending fork Declaration for Selector Starting fork { Dict fun GHC.Classes.$fEq[] Starting fork { Declaration for $fEq[] Loading decl for GHC.Classes.$fEq[] updating EPS_ Considering whether to load ghc-prim:GHC.Types {- SYSTEM -} } ending fork Declaration for $fEq[] } ending fork Dict fun GHC.Classes.$fEq[] Starting fork { Dict fun GHC.Classes.$fEqOrdering Starting fork { Declaration for $fEqOrdering Loading decl for GHC.Classes.$fEqOrdering updating EPS_ Need decl for GHC.Ordering.Ordering Considering whether to load ghc-prim:GHC.Ordering {- SYSTEM -} Reading interface for ghc-prim:GHC.Ordering; reason: Need decl for GHC.Ordering.Ordering readIFace /usr/local/google/src/ghc/libraries/ghc-prim/dist-install/build/GHC/Ordering.hi updating EPS_ } ending fork Declaration for $fEqOrdering } ending fork Dict fun GHC.Classes.$fEqOrdering Starting fork { Declaration for Ordering Loading decl for GHC.Ordering.Ordering updating EPS_ tcIfaceDecl4 GHC.Ordering.Ordering } ending fork Declaration for Ordering Starting fork { Dict fun GHC.Classes.$fEqInt Starting fork { Declaration for $fEqInt Loading decl for GHC.Classes.$fEqInt updating EPS_ Considering whether to load ghc-prim:GHC.Types {- SYSTEM -} } ending fork Declaration for $fEqInt } ending fork Dict fun GHC.Classes.$fEqInt Starting fork { Dict fun GHC.Classes.$fEqFloat Starting fork { Declaration for $fEqFloat Loading decl for GHC.Classes.$fEqFloat updating EPS_ Considering whether to load ghc-prim:GHC.Types {- SYSTEM -} } ending fork Declaration for $fEqFloat } ending fork Dict fun GHC.Classes.$fEqFloat Starting fork { Dict fun GHC.Classes.$fEqFixity Starting fork { Declaration for $fEqFixity Loading decl for GHC.Classes.$fEqFixity updating EPS_ } ending fork Declaration for $fEqFixity } ending fork Dict fun GHC.Classes.$fEqFixity Starting fork { Declaration for Fixity Loading decl for GHC.Generics.Fixity updating EPS_ tcIfaceDecl4 GHC.Generics.Fixity } ending fork Declaration for Fixity Starting fork { Dict fun GHC.Classes.$fEqDouble Starting fork { Declaration for $fEqDouble Loading decl for GHC.Classes.$fEqDouble updating EPS_ Considering whether to load ghc-prim:GHC.Types {- SYSTEM -} } ending fork Declaration for $fEqDouble } ending fork Dict fun GHC.Classes.$fEqDouble Starting fork { Dict fun GHC.Classes.$fEqChar Starting fork { Declaration for $fEqChar Loading decl for GHC.Classes.$fEqChar updating EPS_ Considering whether to load ghc-prim:GHC.Types {- SYSTEM -} } ending fork Declaration for $fEqChar } ending fork Dict fun GHC.Classes.$fEqChar Starting fork { Dict fun GHC.Classes.$fEqBool Starting fork { Declaration for $fEqBool Loading decl for GHC.Classes.$fEqBool updating EPS_ Considering whether to load ghc-prim:GHC.Types {- SYSTEM -} } ending fork Declaration for $fEqBool } ending fork Dict fun GHC.Classes.$fEqBool Starting fork { Dict fun GHC.Classes.$fEqAssociativity Starting fork { Declaration for $fEqAssociativity Loading decl for GHC.Classes.$fEqAssociativity updating EPS_ } ending fork Declaration for $fEqAssociativity } ending fork Dict fun GHC.Classes.$fEqAssociativity Starting fork { Declaration for Associativity Loading decl for GHC.Generics.Associativity updating EPS_ tcIfaceDecl4 GHC.Generics.Associativity } ending fork Declaration for Associativity Starting fork { Dict fun GHC.Classes.$fEqArity Starting fork { Declaration for $fEqArity Loading decl for GHC.Classes.$fEqArity updating EPS_ } ending fork Declaration for $fEqArity } ending fork Dict fun GHC.Classes.$fEqArity Starting fork { Declaration for Arity Loading decl for GHC.Generics.Arity updating EPS_ tcIfaceDecl4 GHC.Generics.Arity } ending fork Declaration for Arity Starting fork { Dict fun GHC.Classes.$fEq(,,,,,,,,,,,,,,) Starting fork { Declaration for $fEq(,,,,,,,,,,,,,,) Loading decl for GHC.Classes.$fEq(,,,,,,,,,,,,,,) updating EPS_ Considering whether to load ghc-prim:GHC.Tuple {- SYSTEM -} Reading interface for ghc-prim:GHC.Tuple; reason: Need home interface for wired-in thing (,,,,,,,,,,,,,,) readIFace /usr/local/google/src/ghc/libraries/ghc-prim/dist-install/build/GHC/Tuple.hi updating EPS_ } ending fork Declaration for $fEq(,,,,,,,,,,,,,,) } ending fork Dict fun GHC.Classes.$fEq(,,,,,,,,,,,,,,) Starting fork { Dict fun GHC.Classes.$fEq(,,,,,,,,,,,,,) Starting fork { Declaration for $fEq(,,,,,,,,,,,,,) Loading decl for GHC.Classes.$fEq(,,,,,,,,,,,,,) updating EPS_ Considering whether to load ghc-prim:GHC.Tuple {- SYSTEM -} } ending fork Declaration for $fEq(,,,,,,,,,,,,,) } ending fork Dict fun GHC.Classes.$fEq(,,,,,,,,,,,,,) Starting fork { Dict fun GHC.Classes.$fEq(,,,,,,,,,,,,) Starting fork { Declaration for $fEq(,,,,,,,,,,,,) Loading decl for GHC.Classes.$fEq(,,,,,,,,,,,,) updating EPS_ Considering whether to load ghc-prim:GHC.Tuple {- SYSTEM -} } ending fork Declaration for $fEq(,,,,,,,,,,,,) } ending fork Dict fun GHC.Classes.$fEq(,,,,,,,,,,,,) Starting fork { Dict fun GHC.Classes.$fEq(,,,,,,,,,,,) Starting fork { Declaration for $fEq(,,,,,,,,,,,) Loading decl for GHC.Classes.$fEq(,,,,,,,,,,,) updating EPS_ Considering whether to load ghc-prim:GHC.Tuple {- SYSTEM -} } ending fork Declaration for $fEq(,,,,,,,,,,,) } ending fork Dict fun GHC.Classes.$fEq(,,,,,,,,,,,) Starting fork { Dict fun GHC.Classes.$fEq(,,,,,,,,,,) Starting fork { Declaration for $fEq(,,,,,,,,,,) Loading decl for GHC.Classes.$fEq(,,,,,,,,,,) updating EPS_ Considering whether to load ghc-prim:GHC.Tuple {- SYSTEM -} } ending fork Declaration for $fEq(,,,,,,,,,,) } ending fork Dict fun GHC.Classes.$fEq(,,,,,,,,,,) Starting fork { Dict fun GHC.Classes.$fEq(,,,,,,,,,) Starting fork { Declaration for $fEq(,,,,,,,,,) Loading decl for GHC.Classes.$fEq(,,,,,,,,,) updating EPS_ Considering whether to load ghc-prim:GHC.Tuple {- SYSTEM -} } ending fork Declaration for $fEq(,,,,,,,,,) } ending fork Dict fun GHC.Classes.$fEq(,,,,,,,,,) Starting fork { Dict fun GHC.Classes.$fEq(,,,,,,,,) Starting fork { Declaration for $fEq(,,,,,,,,) Loading decl for GHC.Classes.$fEq(,,,,,,,,) updating EPS_ Considering whether to load ghc-prim:GHC.Tuple {- SYSTEM -} } ending fork Declaration for $fEq(,,,,,,,,) } ending fork Dict fun GHC.Classes.$fEq(,,,,,,,,) Starting fork { Dict fun GHC.Classes.$fEq(,,,,,,,) Starting fork { Declaration for $fEq(,,,,,,,) Loading decl for GHC.Classes.$fEq(,,,,,,,) updating EPS_ Considering whether to load ghc-prim:GHC.Tuple {- SYSTEM -} } ending fork Declaration for $fEq(,,,,,,,) } ending fork Dict fun GHC.Classes.$fEq(,,,,,,,) Starting fork { Dict fun GHC.Classes.$fEq(,,,,,,) Starting fork { Declaration for $fEq(,,,,,,) Loading decl for GHC.Classes.$fEq(,,,,,,) updating EPS_ Considering whether to load ghc-prim:GHC.Tuple {- SYSTEM -} } ending fork Declaration for $fEq(,,,,,,) } ending fork Dict fun GHC.Classes.$fEq(,,,,,,) Starting fork { Dict fun GHC.Classes.$fEq(,,,,,) Starting fork { Declaration for $fEq(,,,,,) Loading decl for GHC.Classes.$fEq(,,,,,) updating EPS_ Considering whether to load ghc-prim:GHC.Tuple {- SYSTEM -} } ending fork Declaration for $fEq(,,,,,) } ending fork Dict fun GHC.Classes.$fEq(,,,,,) Starting fork { Dict fun GHC.Classes.$fEq(,,,,) Starting fork { Declaration for $fEq(,,,,) Loading decl for GHC.Classes.$fEq(,,,,) updating EPS_ Considering whether to load ghc-prim:GHC.Tuple {- SYSTEM -} } ending fork Declaration for $fEq(,,,,) } ending fork Dict fun GHC.Classes.$fEq(,,,,) Starting fork { Dict fun GHC.Classes.$fEq(,,,) Starting fork { Declaration for $fEq(,,,) Loading decl for GHC.Classes.$fEq(,,,) updating EPS_ Considering whether to load ghc-prim:GHC.Tuple {- SYSTEM -} } ending fork Declaration for $fEq(,,,) } ending fork Dict fun GHC.Classes.$fEq(,,,) Starting fork { Dict fun GHC.Classes.$fEq(,,) Starting fork { Declaration for $fEq(,,) Loading decl for GHC.Classes.$fEq(,,) updating EPS_ Considering whether to load ghc-prim:GHC.Tuple {- SYSTEM -} } ending fork Declaration for $fEq(,,) } ending fork Dict fun GHC.Classes.$fEq(,,) Starting fork { Dict fun GHC.Classes.$fEq(,) Starting fork { Declaration for $fEq(,) Loading decl for GHC.Classes.$fEq(,) updating EPS_ Considering whether to load ghc-prim:GHC.Tuple {- SYSTEM -} } ending fork Declaration for $fEq(,) } ending fork Dict fun GHC.Classes.$fEq(,) Starting fork { Dict fun GHC.Classes.$fEq() Starting fork { Declaration for $fEq() Loading decl for GHC.Classes.$fEq() updating EPS_ Considering whether to load ghc-prim:GHC.Unit {- SYSTEM -} Reading interface for ghc-prim:GHC.Unit; reason: Need home interface for wired-in thing () readIFace /usr/local/google/src/ghc/libraries/ghc-prim/dist-install/build/GHC/Unit.hi updating EPS_ } ending fork Declaration for $fEq() } ending fork Dict fun GHC.Classes.$fEq() tcImportDecl GHC.Integer.Type.Integer Need decl for GHC.Integer.Type.Integer Considering whether to load integer-gmp:GHC.Integer.Type {- SYSTEM -} Reading interface for integer-gmp:GHC.Integer.Type; reason: Need decl for GHC.Integer.Type.Integer readIFace /usr/local/google/src/ghc/libraries/integer-gmp/dist-install/build/GHC/Integer/Type.hi updating EPS_ libraries/base/Data/Maybe.hs:70:13: Can't find interface-file declaration for type constructor or class integer-gmp:GHC.Integer.Type.Integer Probable cause: bug in .hi-boot file, or inconsistent .hi file Use -ddump-if-trace to get an idea of which file caused the error When deriving the instance for (Eq (Maybe a))