[commit: ghc] wip/recurs-compat: Implement recursive compatibility check for closed type families. (2cc3a26)

git at git.haskell.org git at git.haskell.org
Sun Mar 23 00:50:16 UTC 2014


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

On branch  : wip/recurs-compat
Link       : http://ghc.haskell.org/trac/ghc/changeset/2cc3a262e96518486dbaacfaa879d7d3e259b729/ghc

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

commit 2cc3a262e96518486dbaacfaa879d7d3e259b729
Author: Richard Eisenberg <eir at cis.upenn.edu>
Date:   Sat Mar 22 13:16:26 2014 -0400

    Implement recursive compatibility check for closed type families.
    
    Now, on a closed type family, two branches are considered compatible
    if their RHSs **normalize** to the same type. Previously, the RHSs
    had to be identical (under the unifying substitution). This allows
    more reductions -- yay.
    
    CAVEAT: This is probably not type-safe with UndecidableInstances.
    Someone (er... me) has to Think Hard about this before merging.
    It might be unsafe even with imported non-terminating instances
    (so, without UndecidableInstances in the same module).
    There's a change this isn't type-safe even without UndecidableInstances,
    but I'm not too worried about that possibility.


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

2cc3a262e96518486dbaacfaa879d7d3e259b729
 compiler/typecheck/TcSMonad.lhs |   11 +-
 compiler/types/FamInstEnv.lhs   |  217 ++++++++++++++++++++++++++++++---------
 2 files changed, 177 insertions(+), 51 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 2cc3a262e96518486dbaacfaa879d7d3e259b729


More information about the ghc-commits mailing list