Changes to ghc(4)

Changes to ghc:
commit 7d06f63e516bbf1260b4c48cde67c099d0ade42f
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Wed May 14 00:15:48 2014 +0100

    Wibble to 4cfc1fae

    isSynTyCon is true of type *family* TyCons, which *are* allowed
    in TyConAppCo

    (cherry picked from commit 3fd7f543efe977de6f3cce9fcdfdad8b6825f948)

commit 5c97e932df780d3679da9a64676fe2af944e5c94
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Wed Jul 2 12:18:41 2014 -0500

    Refactoring around TyCon.isSynTyCon

    * Document isSynTyCon better
    * Add isTypeSyonymTyCon for regular H98 type synonyms
    * Use isTypeSynonymTyCon rather than isSynTyCon where
      the former is really intended

    All arose as part of a bug I introduced when fixing Trac #9102,
    thinking that isSynTyCon meant H98 type syononyms.

    (cherry picked from commit 022f8750edf6f413fba31293435dcc62600eab77)

commit 0bbcdc88ca8596e1abd1ecfea1ad0835d2b99258
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Tue May 13 13:17:19 2014 +0100

    Fix invariant in mkAppCoFlexible

    mkAppCoFlexible was breaking the invariant that the head of a TyConAppCo cannot
    be a type synonym.  This small patch fixes it.

    (cherry picked from commit 21f17d06aa5c33e639f1b0d37b4bf888b494c441)

commit 0fe1f41ed7f351e6a8b6e8f7e4f6b5b859e7d06c
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Tue May 13 13:15:45 2014 +0100

    Lint should check that TyConAppCo doesn't have a synonym in the tycon position

    That is why Lint didn't nail Trac #9102

    (cherry picked from commit 4cfc1fae11ec9a5c4b34ac747f0ce50f52423eba)