Fix Trac #3950: unifying types of different kinds
Fix Trac #3950: unifying types of different kinds

I was assuming that the unifer only unified types of the 
same kind, but now we can "defer" unsolved constraints that
invariant no longer holds.  Or at least is's more complicated
to ensure.  

This patch takes the path of not assuming the invariant, which
is simpler and more robust.  See
Note [Mismatched type lists and application decomposition]

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