
#11824: GHC error in desugarer lookup -------------------------------------+------------------------------------- Reporter: darchon | Owner: Type: bug | Status: new Priority: normal | Milestone: 8.0.1 Component: Compiler | Version: 8.0.1-rc3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by darchon): I've managed to reduce it even furter. I now have: Unbound/Generics/LocallyNameless.hs: {{{#!hs module Unbound.Generics.LocallyNameless where import Data.Typeable (Typeable) data Name a = Name class Alpha a where isTerm :: a -> Bool instance Typeable a => Alpha (Name a) where isTerm _ = False }}} CLaSH/Core/Type.hs: {{{#!hs module CLaSH.Core.Type where import Unbound.Generics.LocallyNameless (Alpha (..),Name) import CLaSH.Core.TyCon data Type = VarTy type TyName = Name Type instance Alpha Type where isTerm VarTy = False }}} CLaSH/Core/Type.hs-boot {{{#!hs module CLaSH.Core.Type where import Unbound.Generics.LocallyNameless (Name) data Type type TyName = Name Type }}} CLaSH/Core/TyCon.hs {{{#!hs {-# OPTIONS_GHC -ddump-if-trace #-} module CLaSH.Core.TyCon where import Unbound.Generics.LocallyNameless (Alpha (..)) import {-# SOURCE #-} CLaSH.Core.Type (TyName) data AlgTyConRhs = NewTyCon TyName instance Alpha AlgTyConRhs where isTerm (NewTyCon nm) = isTerm nm }}} And the output of -ddump-if-trace is: {{{ ghci CLaSH/Core/Type.hs GHCi, version 8.0.0.20160411: http://www.haskell.org/ghc/ :? for help [1 of 4] Compiling Unbound.Generics.LocallyNameless ( Unbound/Generics/LocallyNameless.hs, interpreted ) [2 of 4] Compiling CLaSH.Core.Type[boot] ( CLaSH/Core/Type.hs-boot, interpreted ) [3 of 4] Compiling CLaSH.Core.TyCon ( CLaSH/Core/TyCon.hs, interpreted ) loadHiBootInterface CLaSH.Core.TyCon Considering whether to load Prelude Considering whether to load Unbound.Generics.LocallyNameless Considering whether to load CLaSH.Core.Type {- SOURCE -} updating EPS_ Considering whether to load GHC.Base {- SYSTEM -} Considering whether to load GHC.Float {- SYSTEM -} newGlobalBinder CLaSH.Core.TyCon AlgTyConRhs CLaSH/Core/TyCon.hs:(7,1)-(8,19) AlgTyConRhs newGlobalBinder CLaSH.Core.TyCon NewTyCon CLaSH/Core/TyCon.hs:8:5-19 NewTyCon Considering whether to load Unbound.Generics.LocallyNameless {- SYSTEM -} Considering whether to load CLaSH.Core.Type {- SYSTEM -} Considering whether to load Unbound.Generics.LocallyNameless {- SYSTEM -} Considering whether to load Unbound.Generics.LocallyNameless {- SYSTEM -} newGlobalBinder CLaSH.Core.TyCon $tc'NewTyCon <no location info> $tc'NewTyCon newGlobalBinder CLaSH.Core.TyCon $WNewTyCon CLaSH/Core/TyCon.hs:8:5-19 $WNewTyCon newGlobalBinder CLaSH.Core.TyCon NewTyCon CLaSH/Core/TyCon.hs:8:5-19 NewTyCon buildDataCon 1 NewTyCon buildDataCon 2 NewTyCon newGlobalBinder CLaSH.Core.TyCon $tcAlgTyConRhs <no location info> $tcAlgTyConRhs newGlobalBinder CLaSH.Core.TyCon $fAlphaAlgTyConRhs CLaSH/Core/TyCon.hs:10:10-26 $fAlphaAlgTyConRhs newGlobalBinder CLaSH.Core.TyCon $trModule CLaSH/Core/TyCon.hs:1:1 $trModule Need decl for $tcType Considering whether to load CLaSH.Core.Type {- SYSTEM -} GHC error in desugarer lookup in CLaSH.Core.TyCon: Can't find interface-file declaration for variable $tcType 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 ghc: panic! (the 'impossible' happened) (GHC version 8.0.0.20160411 for x86_64-unknown-linux): initDs IOEnv failure Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug }}} It seems to be a combination of the Typeable constraint, and the .hs-boot file. Because when I remove the Typeable constraint from: {{{#!hs instance Typeable a => Alpha (Name a) where isTerm _ = False }}} in Unbound/Generics/LocallyNameless.hs everything compiles successfully. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11824#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler