Changes to ghc(3)

Changes to ghc:
commit b7f9b6a7c800da98d5ba17c45df2a589cc999975
Author: Iavor S. Diatchki <iavor.diatchki@gmail.com>
Date:   Sun Jun 29 17:37:34 2014 -0700

    Eliminate `Unify.validKindShape` (#9242)

commit 6290eeadf61a40f2eb08d0fd7ef1f3b7f9804178
Author: Iavor S. Diatchki <iavor.diatchki@gmail.com>
Date:   Sun Jun 29 17:22:16 2014 -0700

    Overlapable pragmas for individual instances (#9242)

    Programmers may provide a pragma immediately after the `instance` keyword
    to control the overlap/incoherence behavior for individual instances.
    For example:

        instance {-# OVERLAP #-} C a where ...

    I chose this notation, rather than the other two outlined in the ticket
    for these reasons:

       1. Having the pragma after the type looks odd, I think.
       2. Having the pragma after there `where` does not work for
           stand-alone derived instances

    I have implemented 3 pragams:

       1. NO_OVERLAP
       2. OVERLAP
       3. INCOHERENT

    These correspond directly to the internal modes currently supported by
    GHC.  If a pragma is specified, it will be used no matter what flags are
    turned on.   For example, putting `NO_OVERLAP` on an instance will mark
    it as non-overlapping, even if `OVERLAPPIN_INSTANCES` is turned on for the
    module.

commit 9982715002edfd789926fd4ccd42bea284a67939
Author: Iavor S. Diatchki <iavor.diatchki@gmail.com>
Date:   Sun Jun 29 16:34:30 2014 -0700

    Factor-out the `OverlapMode` from `OverlapFlag`.

    This seems a bit cleaner conceptually because the overlap mode and running
    in safety mode are quite orthogonal.

    More pragmatically, it also makes it possible to use `OverlapMode` to let
    programmers pick the overlap mode for individual instances.