[commit: ghc] master: Fix type-equality in the type checker (fixes Trac #8553) (985663e)

git at git.haskell.org git at git.haskell.org
Fri Nov 22 15:50:29 UTC 2013


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

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

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

commit 985663ea47487a9e567814ba000e81d65358bf02
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Fri Nov 22 15:48:02 2013 +0000

    Fix type-equality in the type checker (fixes Trac #8553)
    
    For horrible reasons (Note [Comparison with OpenTypeKind] in Type), the
    function Type.eqType currently equates OOpenKind with *.  This may or may
    not be a good idea (it's certainly a revolting one) but it DOES NOT WORK
    in the type checker, which *does* need to distinguish OpenKind and *.
    
    Rather than solve the underlying problem (I have some ideas) I just
    introduced a new, and very short, simple, straightforward function
    TcType.tcEqType to do the job.


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

985663ea47487a9e567814ba000e81d65358bf02
 compiler/typecheck/TcCanonical.lhs |   16 ++++++++--------
 compiler/typecheck/TcGenDeriv.lhs  |    4 ++--
 compiler/typecheck/TcInteract.lhs  |   19 +++++++++----------
 compiler/typecheck/TcSMonad.lhs    |    6 +++---
 compiler/typecheck/TcSimplify.lhs  |    2 +-
 compiler/typecheck/TcType.lhs      |   32 +++++++++++++++++++++++++++++++-
 compiler/typecheck/TcTypeNats.hs   |   34 +++++++++++++++++-----------------
 compiler/types/Type.lhs            |    3 +++
 8 files changed, 74 insertions(+), 42 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 985663ea47487a9e567814ba000e81d65358bf02


More information about the ghc-commits mailing list