[commit: ghc] master: Make -XDeriveFunctor more generous about non-last arguments (Trac #8678) (cdac487)

git at git.haskell.org git at git.haskell.org
Fri Mar 7 16:52:49 UTC 2014


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/cdac487bcd9928d77738f6e79ead7b9bb4bc00fd/ghc

>---------------------------------------------------------------

commit cdac487bcd9928d77738f6e79ead7b9bb4bc00fd
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Fri Mar 7 16:45:55 2014 +0000

    Make -XDeriveFunctor more generous about non-last arguments (Trac #8678)
    
    When deriving Functor, Foldable, Traversable, we need only look at the
    way that the last type argument is treated.  It's fine for there to
    be existentials etc, provided they don't affect the last type argument.
    
    See Note [Check that the type variable is truly universal] in TcDeriv.


>---------------------------------------------------------------

cdac487bcd9928d77738f6e79ead7b9bb4bc00fd
 compiler/typecheck/TcDeriv.lhs                     |   88 +++++++++++++++-----
 compiler/typecheck/TcGenDeriv.lhs                  |    8 +-
 docs/users_guide/glasgow_exts.xml                  |    7 ++
 testsuite/tests/deriving/should_compile/T8678.hs   |   12 +++
 testsuite/tests/deriving/should_compile/all.T      |    1 +
 testsuite/tests/deriving/should_fail/T3101.stderr  |    2 +-
 testsuite/tests/generics/GenCannotDoRep0_0.stderr  |    3 +-
 testsuite/tests/generics/GenCannotDoRep1_0.stderr  |    3 +-
 .../tests/typecheck/should_fail/tcfail086.stderr   |    2 +-
 9 files changed, 96 insertions(+), 30 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc cdac487bcd9928d77738f6e79ead7b9bb4bc00fd


More information about the ghc-commits mailing list