Changes to ghc(10)

Changes to ghc:
commit 0e2fd365301748ac7535ed15f46d159814b71438
Author: Joachim Breitner <mail@joachim-breitner.de>
Date:   Mon Dec 9 18:40:09 2013 +0000

    Make types of bothDmdType more precise

    by only passing the demand on the free variables, and whether the
    argument (resp. scrunitee) may or will diverge.

commit 72b62242288d23299d77245faed8c5fc4dab1d4f
Author: Joachim Breitner <mail@joachim-breitner.de>
Date:   Mon Dec 9 18:40:09 2013 +0000

    Disentangle postProcessDmdTypeM and postProcessUnsat

    Make different postProcess code paths for function arguments (which are
    post-processed just to be both'ed) and unsaturated functions (which are
    post-processed for other reasons.)

commit 24eafd2032e167ef40c07a15b59eba44173609a6
Author: Joachim Breitner <mail@joachim-breitner.de>
Date:   Sat Dec 14 22:07:04 2013 +0100

    Refactor peelManyCalls

    its first argument is just used for its length (the arity of the call).
    So changing the type to Int to reflect that.

    Also add a note [Demands from unsaturated function calls] that hopefully
    comprehensively and comprehensibly explains what is going on here.

commit 779dca75eb383c057dc6a8b065727265f0ec1401
Author: Joachim Breitner <mail@joachim-breitner.de>
Date:   Thu Dec 12 16:12:00 2013 +0000

    Rename postProcessDmdType to postProcessUnsat and use* to reuse*

commit 8f25170ddab14efe5124deaf811f0600c95b4ab8
Author: Joachim Breitner <mail@joachim-breitner.de>
Date:   Mon Dec 9 16:56:32 2013 +0000

    Do not export DmdResult constructors in Demand.lhs

commit de62d2ce257302f0a99149fa6d8db89477ad3b4b
Author: Joachim Breitner <mail@joachim-breitner.de>
Date:   Thu Dec 12 15:39:30 2013 +0000

    Split DmdResult into DmdResult and CPRResult

    this is a small-step-refactoring patch and not very interesting on its
    own.

commit b1561d1250f0006ba5a4f0f6e265cb7081451f3e
Author: Joachim Breitner <mail@joachim-breitner.de>
Date:   Wed Dec 4 17:12:07 2013 +0000

    Add Note [non-algebraic or open body type warning]

commit 59d4a8eb5fa34bdad8f4fa48f4679cf85a8e4b0d
Author: Joachim Breitner <mail@joachim-breitner.de>
Date:   Wed Dec 4 17:38:25 2013 +0000

    Remove dmdAnalArg and replace by easier to understand code

commit fbe14a8e8861403c207dddd6c496096924293bef
Author: Joachim Breitner <mail@joachim-breitner.de>
Date:   Wed Dec 4 17:59:09 2013 +0000

    Clarify the default demand on demand environments

    by adding Notes and using easier to understand combinators.

commit 6b6a30d6b65e8cc563b3cad5f53cf6af75caee4c
Author: Joachim Breitner <mail@joachim-breitner.de>
Date:   Wed Dec 4 16:09:34 2013 +0000

    Move peelFV from DmdAnal to Demand