[commit: ghc] tc-untouchables: Make a start towards eta-rules and injective families (58470fb)

Simon Peyton Jones <[email protected]>
Newsgroups gmane.comp.lang.haskell.cvs.ghc
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.