Fix cloning bugs in SpecConstr
Fix cloning bugs in SpecConstr

These bugs produced a core-lint error when compiling 
GHC.PArr with -O2.  Roman found and fixed them; this
patch also includes some type synonyms to make things a
bit clearer.

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