[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