Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : tc-untouchables
http://hackage.haskell.org/trac/ghc/changeset/58470fb7b4a25c49b567e08740dc8df01a6c3710 >--------------------------------------------------------------- commit 58470fb7b4a25c49b567e08740dc8df01a6c3710 Author: Simon Peyton Jones <[email protected]> Date: Mon Sep 17 11:54:20 2012 +0100 Make a start towards eta-rules and injective families * Make Any into a type family (which it should always have been) This is to support the future introduction of eta rules for product types (see email on ghc-users title "PolyKind issue" early Sept 2012) * Add the *internal* data type support for (a) closed type families [so that you can't give type instance for 'Any'] (b) injective type families [because Any is really injective] This amounts to two boolean flags on the SynFamilyTyCon constructor of TyCon.SynTyConRhs. There is some knock-on effect, but all of a routine nature. It remains to offer source syntax for either closed or injective families. compiler/iface/BinIface.hs | 12 ++++++ compiler/iface/BuildTyCl.lhs | 2 +- compiler/iface/IfaceSyn.lhs | 15 ++++---- compiler/iface/MkIface.lhs | 18 +++------ compiler/iface/TcIface.lhs | 6 ++-- compiler/main/GHC.hs | 2 +- compiler/main/PprTyThing.hs | 14 ++++---- compiler/prelude/TysPrim.lhs | 17 +++++++-- compiler/stgSyn/CoreToStg.lhs | 3 +- compiler/typecheck/TcInstDcls.lhs | 11 +++++- compiler/typecheck/TcRnDriver.lhs | 9 +++-- compiler/typecheck/TcSplice.lhs | 5 +-- compiler/typecheck/TcTyClsDecls.lhs | 7 ++-- compiler/typecheck/TcTyDecls.lhs | 5 +-- compiler/typecheck/TcType.lhs | 5 ++- compiler/types/TyCon.lhs | 66 ++++++++++++++++++----------------- 16 files changed, 111 insertions(+), 86 deletions(-) Diff suppressed because of size. To see it, use: git show 58470fb7b4a25c49b567e08740dc8df01a6c3710 _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
