Changes to ghc(4)

Changes to ghc:
commit 1e0dddd7c96d1e7b89e6ac05bd0bfcc617e834ac
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Mon Apr 14 13:06:22 2014 +0100

    Test Trac #8985

    (cherry picked from commit ff9f9a7f2e227fcda7b8a2f52ec8be66de2e76cd)

commit eefd614ae7ebe49bcf3df0d7ab1144a40e647bdf
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Mon Apr 14 13:03:40 2014 +0100

    Honour the untouchability of kind variables

    Trac #8985 showed up a major shortcoming in the kind unifier: it was
    ignoring untoucability.  This has unpredictably-bad consequences;
    notably, the skolem-escape check can fail.

    There were two things wrong
     * TcRnMonad.isTouchableTcM was returning a constant value for kind variables
       (wrong), and even worse the constant was back-to-front (it was always False).

     * We weren't even calling isTouchableTcM in TcType.unifyKindX.

    I'm not sure how this ever worked.

    Merge to 7.8.3 in due course.

    (cherry picked from commit e7f0ae7ff4f2199abe42f20bac825a7802bff466)

commit 6e207dead24fc783f78ae7c786150cb9e7cd7022
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Fri Apr 4 08:41:35 2014 +0100

    Simplify and tidy up the handling of tuple names

    This fixes Trac #8954.

    There were actually three places where tuple occ-names
    were parsed:
      - IfaceEnv.lookupOrigNameCache
      - Convert.isBuiltInOcc
      - OccName.isTupleOcc_maybe

    I combined all three into TysWiredIn.isBuiltInOcc_maybe
    Much nicer.

    (cherry picked from commit 750271e61bdbaad50c19176406512e79abe404a8)

    Conflicts:
    	testsuite/tests/th/all.T

commit 7dc927d8c3b0bd68cdf2186702309e36dc223ec1
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Tue Apr 8 09:42:51 2014 +0100

    Zonk the existential type variables in tcPatSynDecl

    This was just an omission, which showed up as Trac #8966

    (cherry picked from commit 4dc9f9869bfc82fdb8bd61864859007873ebcc27)