[commit: ghc] master: Simplify Data.Type.Equality.== (4be195e)
git at git.haskell.org
git at git.haskell.org
Wed Sep 13 20:54:48 UTC 2017
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/4be195e707d5e079dca5b6ce2e6cd34ff7624adf/ghc
>---------------------------------------------------------------
commit 4be195e707d5e079dca5b6ce2e6cd34ff7624adf
Author: David Feuer <david.feuer at gmail.com>
Date: Wed Sep 13 12:25:11 2017 -0400
Simplify Data.Type.Equality.==
Contrary to previous comments, we can calculate `==` for types
in an extremely general fashion. The approach used here is actually
the one mistakenly rejected as impossible. There will be some cases
when the previous version was able to reduce and this one is not,
particularly for types in `*` that are unknown, but known equal.
However, the new behavior is much more uniform. Within the
established framework of equality testing by pattern matching,
it does a better job than the previous version.
Reviewers: goldfire, austin, hvr, bgamari, RyanGlScott
Reviewed By: RyanGlScott
Subscribers: RyanGlScott, rwbarton, thomie
Differential Revision: https://phabricator.haskell.org/D3835
>---------------------------------------------------------------
4be195e707d5e079dca5b6ce2e6cd34ff7624adf
docs/users_guide/8.4.1-notes.rst | 8 ++
libraries/base/Data/Either.hs | 9 --
libraries/base/Data/Type/Equality.hs | 201 ++++++++---------------------------
libraries/base/GHC/TypeLits.hs | 10 +-
libraries/base/GHC/TypeNats.hs | 10 +-
libraries/base/changelog.md | 8 ++
6 files changed, 62 insertions(+), 184 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 4be195e707d5e079dca5b6ce2e6cd34ff7624adf
More information about the ghc-commits
mailing list