Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : type-holes-branch
http://hackage.haskell.org/trac/ghc/changeset/c07c4a3d4e13acc1d4a43e99d5f4e11d49f037da >--------------------------------------------------------------- commit c07c4a3d4e13acc1d4a43e99d5f4e11d49f037da 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 c07c4a3d4e13acc1d4a43e99d5f4e11d49f037da _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
