[commit: ghc] master: Update and clean-up the implmenation of GHC.TypeLits (c3762fa)
git at git.haskell.org
git
Thu Oct 10 02:47:15 UTC 2013
Repository : ssh://git at git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/c3762fa4d0156ba0446cee92a035b6454a62a1ae/ghc
>---------------------------------------------------------------
commit c3762fa4d0156ba0446cee92a035b6454a62a1ae
Author: Iavor S. Diatchki <diatchki at galois.com>
Date: Wed Oct 9 19:22:35 2013 -0700
Update and clean-up the implmenation of GHC.TypeLits
* Replace class `SingI` with two separate classes: `KnownNat` and `KnownSymbol`
* Rename `magicSingId` to `magicDictId`.
* Simplify and clean-up the "magic" implementation. This version makes
a lot more sense, at least to me :-)
* Update notes about how it all works:
Note [KnownNat & KnownSymbol and EvLit] explains the evidence for the
built-in classes
Note [magicDictId magic] explains how we coerce singleton values into
dictionaries. This is used to turn run-time integers and strings into
Proxy singletons of unknwon type (using an existential).
>---------------------------------------------------------------
c3762fa4d0156ba0446cee92a035b6454a62a1ae
compiler/basicTypes/MkId.lhs | 63 ++++++++++++++++++++-----------------
compiler/basicTypes/MkId.lhs-boot | 2 +-
compiler/prelude/PrelNames.lhs | 22 ++++++++-----
compiler/prelude/PrelRules.lhs | 30 +++++++++---------
compiler/typecheck/TcEvidence.lhs | 63 +++++++++++++++++++++++--------------
compiler/typecheck/TcInteract.lhs | 60 +++++++++++++++--------------------
6 files changed, 131 insertions(+), 109 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 c3762fa4d0156ba0446cee92a035b6454a62a1ae
More information about the ghc-commits
mailing list