Thu Nov 12 01:29:06 PST 2009 [email protected]
* A radical overhaul of the coercion infrastucture
Ignore-this: e5f757a7d5b0225a9034ae9daf9850d1
* Core Lint now does full checking of kinds and coercion terms
which picks up kind errors in coercions that were previously
simply not checked for
* Coercion.lhs now provides optCoercion which optimises coercion
terms. It implements all of Dimitrios's rules
* The constructors for coercion terms now make no attempt to be
"smart"; instead we rely solely on the coercion optimiser
* CoercionTyCons in TyCon.lhs always had a "custom" kinding rule
(the coKindFun field of CoercionTyCon) but its type was not
clever enough to do both
(a) *figure out the result kind*, assuming the whole thing
is well-kinded in the first place
(b) *check* the kinds of everything, failing gracefully if
they aren't right.
We need (b) for the new CoreLint stuff. The field now has type
CoTyConKindChecker
which does the job nicely.
M ./compiler/coreSyn/CoreArity.lhs -1 +1
M ./compiler/coreSyn/CoreLint.lhs -75 +255
M ./compiler/prelude/PrelNames.lhs +7
M ./compiler/types/Coercion.lhs -395 +339
M ./compiler/types/TyCon.lhs -32 +74
M ./compiler/types/Type.lhs -8 +14
View patch online:
http://darcs.haskell.org/ghc/_darcs/patches/20091112092906-1287e-7dcb2198bac9110296ecba760c6a157821e260a0.gz
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc