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 <e...@cis.upenn.edu> 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 _______________________________________________ Cvs-ghc mailing list Cvs-ghc@haskell.org http://www.haskell.org/mailman/listinfo/cvs-ghc