Deriving Typeable changes
Deriving Typeable changes

* Fix a bug that led to a crash with
    data family T a
    deriving Functor T

* Allow deriving Typeable for data families
    data family T a
    deriving Typeable1 T

* Some refactoring and tidying

ml9951/ghc,olsner/ghc,olsner/ghc,lukexi/ghc-7.8-arm64,tjakway/ghcjvm,fmthoma/ghc,mfine/ghc,da-x/ghc,TomMD/ghc,ryantm/ghc,bitemyapp/ghc,sgillespie/ghc,mcschroeder/ghc,anton-dessiatov/ghc,green-haskell/ghc,mettekou/ghc,mettekou/ghc,lukexi/ghc,oldmanmike/ghc,olsner/ghc,vTurbine/ghc,snoyberg/ghc,nomeata/ghc,olsner/ghc,ekmett/ghc,sdiehl/ghc,tjakway/ghcjvm,christiaanb/ghc,mfine/ghc,snoyberg/ghc,mettekou/ghc,siddhanathan/ghc,forked-upstream-packages-for-ghcjs/ghc,sdiehl/ghc,fmthoma/ghc,ezyang/ghc,nkaretnikov/ghc,nomeata/ghc,mettekou/ghc,urbanslug/ghc,green-haskell/ghc,gridaphobe/ghc,bitemyapp/ghc,mettekou/ghc,gcampax/ghc,urbanslug/ghc,wxwxwwxxx/ghc,frantisekfarka/ghc-dsi,nomeata/ghc,mfine/ghc,oldmanmike/ghc,nomeata/ghc,hferreiro/replay,lukexi/ghc,nkaretnikov/ghc,acowley/ghc,vikraman/ghc,forked-upstream-packages-for-ghcjs/ghc,ghc-android/ghc,wxwxwwxxx/ghc,lukexi/ghc,gcampax/ghc,wxwxwwxxx/ghc,ghc-android/ghc,siddhanathan/ghc,gridaphobe/ghc,vikraman/ghc,spacekitteh/smcghc,nomeata/ghc,frantisekfarka/ghc-dsi,ml9951/ghc,oldmanmike/ghc,snoyberg/ghc,ghc-android/ghc,wxwxwwxxx/ghc,hferreiro/replay,christiaanb/ghc,da-x/ghc,mcschroeder/ghc,tibbe/ghc,mcmaniac/ghc,vikraman/ghc,tibbe/ghc,vikraman/ghc,fmthoma/ghc,ml9951/ghc,spacekitteh/smcghc,snoyberg/ghc,gcampax/ghc,shlevy/ghc,elieux/ghc,jstolarek/ghc,anton-dessiatov/ghc,wxwxwwxxx/ghc,nushio3/ghc,mettekou/ghc,anton-dessiatov/ghc,nathyong/microghc-ghc,tjakway/ghcjvm,snoyberg/ghc,vikraman/ghc,christiaanb/ghc,green-haskell/ghc,fmthoma/ghc,GaloisInc/halvm-ghc,nathyong/microghc-ghc,urbanslug/ghc,sgillespie/ghc,ezyang/ghc,urbanslug/ghc,siddhanathan/ghc,ilyasergey/GHC-XAppFix,holzensp/ghc,elieux/ghc,spacekitteh/smcghc,ilyasergey/GHC-XAppFix,nathyong/microghc-ghc,nkaretnikov/ghc,AlexanderPankiv/ghc,ryantm/ghc,oldmanmike/ghc,urbanslug/ghc,nathyong/microghc-ghc,nushio3/ghc,ezyang/ghc,vTurbine/ghc,christiaanb/ghc,mcmaniac/ghc,ryantm/ghc,siddhanathan/ghc,siddhanathan/ghc,forked-upstream-packages-for-ghcjs/ghc,tjakway/ghcjvm,sgillespie/ghc,gcampax/ghc,shlevy/ghc,AlexanderPankiv/ghc,ghc-android/ghc,jstolarek/ghc,lukexi/ghc-7.8-arm64,GaloisInc/halvm-ghc,GaloisInc/halvm-ghc,nkaretnikov/ghc,mcschroeder/ghc,olsner/ghc,da-x/ghc,holzensp/ghc,hferreiro/replay,tibbe/ghc,hferreiro/replay,nkaretnikov/ghc,spacekitteh/smcghc,shlevy/ghc,ezyang/ghc,GaloisInc/halvm-ghc,fmthoma/ghc,vTurbine/ghc,nathyong/microghc-ghc,jstolarek/ghc,GaloisInc/halvm-ghc,TomMD/ghc,tibbe/ghc,green-haskell/ghc,acowley/ghc,nushio3/ghc,nushio3/ghc,gridaphobe/ghc,vikraman/ghc,da-x/ghc,sgillespie/ghc,oldmanmike/ghc,green-haskell/ghc,AlexanderPankiv/ghc,shlevy/ghc,ryantm/ghc,sgillespie/ghc,hferreiro/replay,fmthoma/ghc,mcschroeder/ghc,ml9951/ghc,lukexi/ghc-7.8-arm64,ekmett/ghc,TomMD/ghc,mfine/ghc,forked-upstream-packages-for-ghcjs/ghc,shlevy/ghc,acowley/ghc,spacekitteh/smcghc,TomMD/ghc,lukexi/ghc-7.8-arm64,acowley/ghc,frantisekfarka/ghc-dsi,mettekou/ghc,anton-dessiatov/ghc,gcampax/ghc,ml9951/ghc,wxwxwwxxx/ghc,acowley/ghc,fmthoma/ghc,jstolarek/ghc,forked-upstream-packages-for-ghcjs/ghc,acowley/ghc,anton-dessiatov/ghc,sdiehl/ghc,christiaanb/ghc,TomMD/ghc,shlevy/ghc,urbanslug/ghc,ml9951/ghc,AlexanderPankiv/ghc,gcampax/ghc,mcschroeder/ghc,vTurbine/ghc,nathyong/microghc-ghc,gridaphobe/ghc,ezyang/ghc,sdiehl/ghc,sgillespie/ghc,hferreiro/replay,sdiehl/ghc,nathyong/microghc-ghc,shlevy/ghc,ezyang/ghc,mfine/ghc,nkaretnikov/ghc,ghc-android/ghc,da-x/ghc,tjakway/ghcjvm,da-x/ghc,mfine/ghc,forked-upstream-packages-for-ghcjs/ghc,elieux/ghc,mcmaniac/ghc,olsner/ghc,ilyasergey/GHC-XAppFix,mcschroeder/ghc,elieux/ghc,GaloisInc/halvm-ghc,gridaphobe/ghc,lukexi/ghc-7.8-arm64,bitemyapp/ghc,tjakway/ghcjvm,TomMD/ghc,ml9951/ghc,frantisekfarka/ghc-dsi,vikraman/ghc,elieux/ghc,holzensp/ghc,anton-dessiatov/ghc,christiaanb/ghc,jstolarek/ghc,vTurbine/ghc,ezyang/ghc,acowley/ghc,bitemyapp/ghc,vTurbine/ghc,elieux/ghc,nkaretnikov/ghc,ekmett/ghc,urbanslug/ghc,sdiehl/ghc,mfine/ghc,AlexanderPankiv/ghc,da-x/ghc,AlexanderPankiv/ghc,holzensp/ghc,oldmanmike/ghc,sgillespie/ghc,wxwxwwxxx/ghc,snoyberg/ghc,nushio3/ghc,hferreiro/replay,tibbe/ghc,gridaphobe/ghc,bitemyapp/ghc,gcampax/ghc,ryantm/ghc,ilyasergey/GHC-XAppFix,lukexi/ghc,holzensp/ghc,nushio3/ghc,elieux/ghc,olsner/ghc,mcmaniac/ghc,mcschroeder/ghc,anton-dessiatov/ghc,oldmanmike/ghc,siddhanathan/ghc,ekmett/ghc,AlexanderPankiv/ghc,GaloisInc/halvm-ghc,snoyberg/ghc,tjakway/ghcjvm,christiaanb/ghc,ghc-android/ghc,forked-upstream-packages-for-ghcjs/ghc,sdiehl/ghc,nushio3/ghc,gridaphobe/ghc,lukexi/ghc,ghc-android/ghc,frantisekfarka/ghc-dsi,TomMD/ghc,ml9951/ghc,siddhanathan/ghc,ekmett/ghc,vTurbine/ghc,mcmaniac/ghc