[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