Fix Trac #3102: pre-matching polytypes
Fix Trac #3102: pre-matching polytypes

When *pre-matching* two types
     forall a. C1 => t1  ~  forall a. C2 => t2
we were matching t1~t2, but totally ignoring C1,C2
That's utterly wrong when pre-matching
       (?p::Int) => String  ~  a
because we emerge with a:=String!

All this is part of the impredicative story, which is about
to go away, but still.

Worth merging this to 6.12

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