
GHC 6.8 seems unable to derive (some?) instances for data types with higher-kinded variables. GHC 6.6 manages these just fine. See below. What's the story? thanks -m :~/haskell$ cat D.hs data T w = T (w Bool) deriving (Show) data ID x = ID x deriving (Show) main = print (T (ID False)) :~/haskell$ ghci -ignore-dot-files -fallow-undecidable-instances D.hs ___ ___ _ / _ \ /\ /\/ __(_) / /_\// /_/ / / | | GHC Interactive, version 6.6.1, for Haskell 98. / /_\\/ __ / /___| | http://www.haskell.org/ghc/ \____/\/ /_/\____/|_| Type :? for help. Loading package base ... linking ... done. [1 of 1] Compiling Main ( D.hs, interpreted ) Ok, modules loaded: Main. *Main> main T (ID False) *Main> :q Leaving GHCi. :~/haskell$ ${GHC_682_BIN}/ghci -ignore-dot-files -fallow-undecidable-instances D.hs GHCi, version 6.8.2: http://www.haskell.org/ghc/ :? for help Loading package base ... linking ... done. [1 of 1] Compiling Main ( D.hs, interpreted ) D.hs:1:0: No instance for (Show (w Bool)) arising from the 'deriving' clause of a data type declaration at D.hs:1:0-48 Possible fix: add an instance declaration for (Show (w Bool)) When deriving the instance for (Show (T w)) Failed, modules loaded: none. Prelude>