[commit: ghc] tc-untouchables: Undo making Any into a type family, for now (1b5c833)
Simon Peyton Jones
simonpj at microsoft.com
Tue Sep 18 18:45:39 CEST 2012
Repository : ssh://darcs.haskell.org//srv/darcs/ghc
On branch : tc-untouchables
http://hackage.haskell.org/trac/ghc/changeset/1b5c8337577eea64972856b0466a7fbc36683540
>---------------------------------------------------------------
commit 1b5c8337577eea64972856b0466a7fbc36683540
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date: Tue Sep 18 17:31:28 2012 +0100
Undo making Any into a type family, for now
Making Any a type family is the right thing to do, but it messes up
the proxy kind arguments in TypeLits and Singletons, so I'm backing it
out for now.
More thought required!
>---------------------------------------------------------------
compiler/prelude/TysPrim.lhs | 6 ++++++
compiler/stgSyn/CoreToStg.lhs | 1 +
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/compiler/prelude/TysPrim.lhs b/compiler/prelude/TysPrim.lhs
index 792c174..5d177d5 100644
--- a/compiler/prelude/TysPrim.lhs
+++ b/compiler/prelude/TysPrim.lhs
@@ -717,6 +717,11 @@ anyTy :: Type
anyTy = mkTyConTy anyTyCon
anyTyCon :: TyCon
+anyTyCon = mkLiftedPrimTyCon anyTyConName kind 1 PtrRep
+ where kind = ForAllTy kKiVar (mkTyVarTy kKiVar)
+
+{- Can't do this yet without messing up kind proxies
+anyTyCon :: TyCon
anyTyCon = mkSynTyCon anyTyConName kind [kKiVar]
syn_rhs
NoParentTyCon
@@ -724,6 +729,7 @@ anyTyCon = mkSynTyCon anyTyConName kind [kKiVar]
kind = ForAllTy kKiVar (mkTyVarTy kKiVar)
syn_rhs = SynFamilyTyCon { synf_open = False, synf_injective = True }
-- NB Closed, injective
+-}
anyTypeOfKind :: Kind -> Type
anyTypeOfKind kind = mkNakedTyConApp anyTyCon [kind]
diff --git a/compiler/stgSyn/CoreToStg.lhs b/compiler/stgSyn/CoreToStg.lhs
index 6c315b3..678136d 100644
--- a/compiler/stgSyn/CoreToStg.lhs
+++ b/compiler/stgSyn/CoreToStg.lhs
@@ -476,6 +476,7 @@ mkStgAltType bndr alts = case repType (idType bndr) of
where
_is_poly_alt_tycon tc
= isFunTyCon tc
+ || isPrimTyCon tc -- "Any" is lifted but primitive
|| isFamilyTyCon tc -- Type family; e.g. Any, or arising from strict
-- function application where argument has a
-- type-family type
More information about the Cvs-ghc
mailing list