Fri Nov 6 09:38:01 PST 2009 [email protected]
* Tidy up coercions, and implement csel1, csel2, cselR
Ignore-this: 17991a7b7d1db093d1049e3315027d96
In preparation for implementing the PushC rule for coercion-swizzling
in the Simplifier, I had to inmplement the three new decomposition
operators for coercions, which I've called csel1, csel2, and cselR.
co :: ((s1~t1) => r1) ~ ((s2~t2) => r2)
---------------------------------------
csel1 co :: s1~s2
and similarly csel2, cselR.
On the way I fixed the coercionKind function for types of form
(s1~t2) => r2
which currently are expressed as a forall type.
And I refactored quite a bit to help myself understand what is
going on.
M ./compiler/coreSyn/CoreLint.lhs -35 +73
M ./compiler/coreSyn/CoreUtils.lhs -1 +1
M ./compiler/coreSyn/PprCore.lhs -10 +12
M ./compiler/prelude/PrelNames.lhs -2 +6
M ./compiler/types/Coercion.lhs -73 +167
M ./compiler/types/Type.lhs -3 +3
M ./compiler/types/TypeRep.lhs -4 +7
M ./compiler/types/Unify.lhs -1 +1
View patch online:
http://darcs.haskell.org/ghc/_darcs/patches/20091106173801-1287e-8e22221a2c722135821554f43bd95eaf0bb70cd4.gz
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc