[commit: ghc] overlapping-tyfams: Reimplemented overlapping type family instances through a change (a70242a)

Richard Eisenberg <[email protected]>
Newsgroups gmane.comp.lang.haskell.cvs.ghc
Message-ID <[email protected]>
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : overlapping-tyfams

http://hackage.haskell.org/trac/ghc/changeset/a70242acbebd3bacf9043b710803160c2694397f

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

commit a70242acbebd3bacf9043b710803160c2694397f
Author: Richard Eisenberg <[email protected]>
Date:   Thu Oct 18 16:39:39 2012 -0400

    Reimplemented overlapping type family instances through a change
    in the CoAxiom type, instead of just a change in FamInst. The new
    CoAxiom supports multiple CoAxBranches. The use of a CoAxiom,
    say with the Coercion constructor AxiomInstCo, requires an index
    choosing which branch to use. The major changes are in
    types/FamInstEnv.hs, types/TyCon.hs, and to a lesser degree
    types/Coercion.lhs.
    
    This commit does not work, however. There is an unknown problem
    with loading iface files. Use a later commit if you want this to work.

 compiler/basicTypes/MkId.lhs                      |   33 +-
 compiler/coreSyn/CoreLint.lhs                     |   13 +-
 compiler/coreSyn/ExternalCore.lhs                 |    1 +
 compiler/coreSyn/MkExternalCore.lhs               |    3 +-
 compiler/coreSyn/TrieMap.lhs                      |   52 +-
 compiler/deSugar/DsBinds.lhs                      |    3 +-
 compiler/iface/BinIface.hs                        |   21 +-
 compiler/iface/IfaceSyn.lhs                       |   56 ++-
 compiler/iface/IfaceType.lhs                      |   11 +-
 compiler/iface/MkIface.lhs                        |   34 +-
 compiler/iface/TcIface.lhs                        |   78 ++-
 compiler/main/GHC.hs                              |    2 +-
 compiler/main/HscTypes.lhs                        |   32 +-
 compiler/typecheck/FamInst.lhs                    |   49 +-
 compiler/typecheck/TcBinds.lhs                    |    2 +-
 compiler/typecheck/TcDeriv.lhs                    |   13 +-
 compiler/typecheck/TcEnv.lhs                      |   13 +-
 compiler/typecheck/TcEvidence.lhs                 |   33 +-
 compiler/typecheck/TcExpr.lhs                     |   12 +-
 compiler/typecheck/TcForeign.lhs                  |    2 +-
 compiler/typecheck/TcGenGenerics.lhs              |    4 +-
 compiler/typecheck/TcHsSyn.lhs                    |    3 +-
 compiler/typecheck/TcInstDcls.lhs                 |   71 ++-
 compiler/typecheck/TcInteract.lhs                 |    8 +-
 compiler/typecheck/TcPat.lhs                      |    2 +-
 compiler/typecheck/TcSMonad.lhs                   |    2 +-
 compiler/typecheck/TcSplice.lhs                   |    2 +-
 compiler/typecheck/TcType.lhs                     |   25 +-
 compiler/types/Coercion.lhs                       |  125 +++--
 compiler/types/FamInstEnv.lhs                     |  683 +++++++++++++++------
 compiler/types/OptCoercion.lhs                    |   51 +-
 compiler/types/TyCon.lhs                          |   84 ++-
 compiler/types/Type.lhs                           |    8 +
 compiler/vectorise/Vectorise/Generic/PAMethods.hs |   14 +-
 compiler/vectorise/Vectorise/Monad/InstEnv.hs     |    4 +-
 compiler/vectorise/Vectorise/Utils/Base.hs        |   16 +-
 compiler/vectorise/Vectorise/Utils/PADict.hs      |    6 +-
 37 files changed, 1052 insertions(+), 519 deletions(-)


Diff suppressed because of size. To see it, use:

    git show a70242acbebd3bacf9043b710803160c2694397f
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.