[commit: ghc] type-holes-branch: Make a start towards eta-rules and injective families (c07c4a3)

Simon Peyton Jones simonpj at microsoft.com
Mon Sep 17 13:05:23 CEST 2012


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 <simonpj at microsoft.com>
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



More information about the Cvs-ghc mailing list