Can't find interface-file declaration for type constructor or class integer-gmp:GHC.Integer.Type.Integer

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Can't find interface-file declaration for type constructor or class integer-gmp:GHC.Integer.Type.Integer

Johan Tibell-2
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))

_______________________________________________
Glasgow-haskell-users mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Reply | Threaded
Open this post in threaded view
|

RE: Can't find interface-file declaration for type constructor or class integer-gmp:GHC.Integer.Type.Integer

Simon Peyton Jones
My guess is that you have not updated compiler/prelude/PrelNames, which contains wired-in knowledge of which modules certain functions and data types live in.  Check the ones you've moved!

S

| -----Original Message-----
| From: [hidden email] [mailto:glasgow-haskell-users-
| [hidden email]] On Behalf Of Johan Tibell
| Sent: 18 August 2011 15:45
| To: glasgow-haskell-users
| Subject: Can't find interface-file declaration for type constructor or class integer-
| gmp:GHC.Integer.Type.Integer
|
| 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))
|
| _______________________________________________
| Glasgow-haskell-users mailing list
| [hidden email]
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


_______________________________________________
Glasgow-haskell-users mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Reply | Threaded
Open this post in threaded view
|

Re: Can't find interface-file declaration for type constructor or class integer-gmp:GHC.Integer.Type.Integer

Johan Tibell-2
I shouldn't have to modify PrelNames since I kept GHC.Integer.Type,
no? Or does PrelNames have to contain the name of the module that
originally defined the type? Looking in the .hi file in question (the
one for GHC.Integer.Type) I can see both the export of Integer(..) and
the import of Integer(..) from GHC.Integer.GMP.Types.

On Thu, Aug 18, 2011 at 6:10 PM, Simon Peyton-Jones
<[hidden email]> wrote:

> My guess is that you have not updated compiler/prelude/PrelNames, which contains wired-in knowledge of which modules certain functions and data types live in.  Check the ones you've moved!
>
> S
>
> | -----Original Message-----
> | From: [hidden email] [mailto:glasgow-haskell-users-
> | [hidden email]] On Behalf Of Johan Tibell
> | Sent: 18 August 2011 15:45
> | To: glasgow-haskell-users
> | Subject: Can't find interface-file declaration for type constructor or class integer-
> | gmp:GHC.Integer.Type.Integer
> |
> | 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))
> |
> | _______________________________________________
> | Glasgow-haskell-users mailing list
> | [hidden email]
> | http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>
>

_______________________________________________
Glasgow-haskell-users mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Reply | Threaded
Open this post in threaded view
|

RE: Can't find interface-file declaration for type constructor or class integer-gmp:GHC.Integer.Type.Integer

Simon Peyton Jones
| I shouldn't have to modify PrelNames since I kept GHC.Integer.Type,
| no? Or does PrelNames have to contain the name of the module that
| originally defined the type?

Yes, exactly!

Simon


_______________________________________________
Glasgow-haskell-users mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Reply | Threaded
Open this post in threaded view
|

Re: Can't find interface-file declaration for type constructor or class integer-gmp:GHC.Integer.Type.Integer

Johan Tibell-2
On Thu, Aug 18, 2011 at 7:07 PM, Simon Peyton-Jones
<[hidden email]> wrote:
> | I shouldn't have to modify PrelNames since I kept GHC.Integer.Type,
> | no? Or does PrelNames have to contain the name of the module that
> | originally defined the type?
>
> Yes, exactly!

This causes some trouble though, as the module named in PrelNames must
exist in both in integer-gmp and integer-simple i.e. it must be some
generic name like GHC.Integer.Type rather than a name containing e.g.
GMP. I could keep the data type definition where it is
(GHC.Integer.Type) but then I would have a hard time exporting it from
e.g. GHC.Integer.GMP.Internals without undoing Ian's patch which
removed the slightly odd GHC.Integer -> GHC.Integer.GMP.Internals ->
GHC.Integer.Type module dependency in integer-gmp.

_______________________________________________
Glasgow-haskell-users mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Reply | Threaded
Open this post in threaded view
|

Re: Can't find interface-file declaration for type constructor or class integer-gmp:GHC.Integer.Type.Integer

Daniel Fischer
On Thursday 18 August 2011, 19:13:45, Johan Tibell wrote:

> On Thu, Aug 18, 2011 at 7:07 PM, Simon Peyton-Jones
>
> <[hidden email]> wrote:
> > | I shouldn't have to modify PrelNames since I kept GHC.Integer.Type,
> > | no? Or does PrelNames have to contain the name of the module that
> > | originally defined the type?
> >
> > Yes, exactly!
>
> This causes some trouble though, as the module named in PrelNames must
> exist in both in integer-gmp and integer-simple i.e. it must be some
> generic name like GHC.Integer.Type

GHC.Integer.Impl.Type ?

> rather than a name containing e.g.
> GMP. I could keep the data type definition where it is
> (GHC.Integer.Type) but then I would have a hard time exporting it from
> e.g. GHC.Integer.GMP.Internals without undoing Ian's patch which
> removed the slightly odd GHC.Integer -> GHC.Integer.GMP.Internals ->
> GHC.Integer.Type module dependency in integer-gmp.


_______________________________________________
Glasgow-haskell-users mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Reply | Threaded
Open this post in threaded view
|

Re: Can't find interface-file declaration for type constructor or class integer-gmp:GHC.Integer.Type.Integer

Johan Tibell-2
On Thu, Aug 18, 2011 at 7:32 PM, Daniel Fischer
<[hidden email]> wrote:

> On Thursday 18 August 2011, 19:13:45, Johan Tibell wrote:
>> On Thu, Aug 18, 2011 at 7:07 PM, Simon Peyton-Jones
>>
>> <[hidden email]> wrote:
>> > | I shouldn't have to modify PrelNames since I kept GHC.Integer.Type,
>> > | no? Or does PrelNames have to contain the name of the module that
>> > | originally defined the type?
>> >
>> > Yes, exactly!
>>
>> This causes some trouble though, as the module named in PrelNames must
>> exist in both in integer-gmp and integer-simple i.e. it must be some
>> generic name like GHC.Integer.Type
>
> GHC.Integer.Impl.Type ?

The problem is that we wan't to export the GMP specific constructors
under something like GHC.Integer.GMP.Something, but that introduces a
conceptually weird (according to Ian's patch) module dependency.

_______________________________________________
Glasgow-haskell-users mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Reply | Threaded
Open this post in threaded view
|

RE: Can't find interface-file declaration for type constructor or class integer-gmp:GHC.Integer.Type.Integer

Simon Peyton Jones
In reply to this post by Johan Tibell-2
It's hard to know what Ian had in mind, but I'm sure he'll tell us when he gets back from holiday.

Meanwhile, yes, it is hard to reconcile
* The wish to have multiple implementations of Integer
* The wired-in knowledge that GHC has
* The desire to have optimising rewrite rules in client libraries

I suggested one approach in the ticket earlier today; there might be others.  It might be good to figure out a good design before going much further into implementation.

Simon

|  -----Original Message-----
|  From: Johan Tibell [mailto:[hidden email]]
|  Sent: 18 August 2011 18:14
|  To: Simon Peyton-Jones
|  Cc: glasgow-haskell-users
|  Subject: Re: Can't find interface-file declaration for type constructor or class
|  integer-gmp:GHC.Integer.Type.Integer
|  
|  On Thu, Aug 18, 2011 at 7:07 PM, Simon Peyton-Jones
|  <[hidden email]> wrote:
|  > | I shouldn't have to modify PrelNames since I kept GHC.Integer.Type,
|  > | no? Or does PrelNames have to contain the name of the module that
|  > | originally defined the type?
|  >
|  > Yes, exactly!
|  
|  This causes some trouble though, as the module named in PrelNames must
|  exist in both in integer-gmp and integer-simple i.e. it must be some
|  generic name like GHC.Integer.Type rather than a name containing e.g.
|  GMP. I could keep the data type definition where it is
|  (GHC.Integer.Type) but then I would have a hard time exporting it from
|  e.g. GHC.Integer.GMP.Internals without undoing Ian's patch which
|  removed the slightly odd GHC.Integer -> GHC.Integer.GMP.Internals ->
|  GHC.Integer.Type module dependency in integer-gmp.


_______________________________________________
Glasgow-haskell-users mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Reply | Threaded
Open this post in threaded view
|

Re: Can't find interface-file declaration for type constructor or class integer-gmp:GHC.Integer.Type.Integer

Johan Tibell-2
These two parallel discussions are getting a bit confusing so I
suggest we continue the discussion on the ticket. :)

On Fri, Aug 19, 2011 at 12:39 AM, Simon Peyton-Jones
<[hidden email]> wrote:

> It's hard to know what Ian had in mind, but I'm sure he'll tell us when he gets back from holiday.
>
> Meanwhile, yes, it is hard to reconcile
> * The wish to have multiple implementations of Integer
> * The wired-in knowledge that GHC has
> * The desire to have optimising rewrite rules in client libraries
>
> I suggested one approach in the ticket earlier today; there might be others.  It might be good to figure out a good design before going much further into implementation.
>
> Simon
>
> |  -----Original Message-----
> |  From: Johan Tibell [mailto:[hidden email]]
> |  Sent: 18 August 2011 18:14
> |  To: Simon Peyton-Jones
> |  Cc: glasgow-haskell-users
> |  Subject: Re: Can't find interface-file declaration for type constructor or class
> |  integer-gmp:GHC.Integer.Type.Integer
> |
> |  On Thu, Aug 18, 2011 at 7:07 PM, Simon Peyton-Jones
> |  <[hidden email]> wrote:
> |  > | I shouldn't have to modify PrelNames since I kept GHC.Integer.Type,
> |  > | no? Or does PrelNames have to contain the name of the module that
> |  > | originally defined the type?
> |  >
> |  > Yes, exactly!
> |
> |  This causes some trouble though, as the module named in PrelNames must
> |  exist in both in integer-gmp and integer-simple i.e. it must be some
> |  generic name like GHC.Integer.Type rather than a name containing e.g.
> |  GMP. I could keep the data type definition where it is
> |  (GHC.Integer.Type) but then I would have a hard time exporting it from
> |  e.g. GHC.Integer.GMP.Internals without undoing Ian's patch which
> |  removed the slightly odd GHC.Integer -> GHC.Integer.GMP.Internals ->
> |  GHC.Integer.Type module dependency in integer-gmp.
>
>

_______________________________________________
Glasgow-haskell-users mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Reply | Threaded
Open this post in threaded view
|

Re: Can't find interface-file declaration for type constructor or class integer-gmp:GHC.Integer.Type.Integer

Lennart Augustsson
Also beware that Typeable uses the original names of types, which means that moving basic types around totally wrecks backwards compatibility for those of us who use the type name for serialization etc.

   -- Lennart (iPhone)

On Aug 19, 2011, at 11:00, Johan Tibell <[hidden email]> wrote:

> These two parallel discussions are getting a bit confusing so I
> suggest we continue the discussion on the ticket. :)
>
> On Fri, Aug 19, 2011 at 12:39 AM, Simon Peyton-Jones
> <[hidden email]> wrote:
>> It's hard to know what Ian had in mind, but I'm sure he'll tell us when he gets back from holiday.
>>
>> Meanwhile, yes, it is hard to reconcile
>> * The wish to have multiple implementations of Integer
>> * The wired-in knowledge that GHC has
>> * The desire to have optimising rewrite rules in client libraries
>>
>> I suggested one approach in the ticket earlier today; there might be others.  It might be good to figure out a good design before going much further into implementation.
>>
>> Simon
>>
>> |  -----Original Message-----
>> |  From: Johan Tibell [mailto:[hidden email]]
>> |  Sent: 18 August 2011 18:14
>> |  To: Simon Peyton-Jones
>> |  Cc: glasgow-haskell-users
>> |  Subject: Re: Can't find interface-file declaration for type constructor or class
>> |  integer-gmp:GHC.Integer.Type.Integer
>> |
>> |  On Thu, Aug 18, 2011 at 7:07 PM, Simon Peyton-Jones
>> |  <[hidden email]> wrote:
>> |  > | I shouldn't have to modify PrelNames since I kept GHC.Integer.Type,
>> |  > | no? Or does PrelNames have to contain the name of the module that
>> |  > | originally defined the type?
>> |  >
>> |  > Yes, exactly!
>> |
>> |  This causes some trouble though, as the module named in PrelNames must
>> |  exist in both in integer-gmp and integer-simple i.e. it must be some
>> |  generic name like GHC.Integer.Type rather than a name containing e.g.
>> |  GMP. I could keep the data type definition where it is
>> |  (GHC.Integer.Type) but then I would have a hard time exporting it from
>> |  e.g. GHC.Integer.GMP.Internals without undoing Ian's patch which
>> |  removed the slightly odd GHC.Integer -> GHC.Integer.GMP.Internals ->
>> |  GHC.Integer.Type module dependency in integer-gmp.
>>
>>
>
> _______________________________________________
> Glasgow-haskell-users mailing list
> [hidden email]
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

_______________________________________________
Glasgow-haskell-users mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Reply | Threaded
Open this post in threaded view
|

Re: Can't find interface-file declaration for type constructor or class integer-gmp:GHC.Integer.Type.Integer

Johan Tibell-2
That sounds like another reason to keep things as they were. The
benefits of moving things around are internal to the package while the
downsides are external (breaking packages).

On Fri, Aug 19, 2011 at 11:09 AM, Lennart Augustsson
<[hidden email]> wrote:

> Also beware that Typeable uses the original names of types, which means that moving basic types around totally wrecks backwards compatibility for those of us who use the type name for serialization etc.
>
>   -- Lennart (iPhone)
>
> On Aug 19, 2011, at 11:00, Johan Tibell <[hidden email]> wrote:
>
>> These two parallel discussions are getting a bit confusing so I
>> suggest we continue the discussion on the ticket. :)
>>
>> On Fri, Aug 19, 2011 at 12:39 AM, Simon Peyton-Jones
>> <[hidden email]> wrote:
>>> It's hard to know what Ian had in mind, but I'm sure he'll tell us when he gets back from holiday.
>>>
>>> Meanwhile, yes, it is hard to reconcile
>>> * The wish to have multiple implementations of Integer
>>> * The wired-in knowledge that GHC has
>>> * The desire to have optimising rewrite rules in client libraries
>>>
>>> I suggested one approach in the ticket earlier today; there might be others.  It might be good to figure out a good design before going much further into implementation.
>>>
>>> Simon
>>>
>>> |  -----Original Message-----
>>> |  From: Johan Tibell [mailto:[hidden email]]
>>> |  Sent: 18 August 2011 18:14
>>> |  To: Simon Peyton-Jones
>>> |  Cc: glasgow-haskell-users
>>> |  Subject: Re: Can't find interface-file declaration for type constructor or class
>>> |  integer-gmp:GHC.Integer.Type.Integer
>>> |
>>> |  On Thu, Aug 18, 2011 at 7:07 PM, Simon Peyton-Jones
>>> |  <[hidden email]> wrote:
>>> |  > | I shouldn't have to modify PrelNames since I kept GHC.Integer.Type,
>>> |  > | no? Or does PrelNames have to contain the name of the module that
>>> |  > | originally defined the type?
>>> |  >
>>> |  > Yes, exactly!
>>> |
>>> |  This causes some trouble though, as the module named in PrelNames must
>>> |  exist in both in integer-gmp and integer-simple i.e. it must be some
>>> |  generic name like GHC.Integer.Type rather than a name containing e.g.
>>> |  GMP. I could keep the data type definition where it is
>>> |  (GHC.Integer.Type) but then I would have a hard time exporting it from
>>> |  e.g. GHC.Integer.GMP.Internals without undoing Ian's patch which
>>> |  removed the slightly odd GHC.Integer -> GHC.Integer.GMP.Internals ->
>>> |  GHC.Integer.Type module dependency in integer-gmp.
>>>
>>>
>>
>> _______________________________________________
>> Glasgow-haskell-users mailing list
>> [hidden email]
>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>

_______________________________________________
Glasgow-haskell-users mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users