[commit: ghc] tc-untouchables: Undo making Any into a type family, for now (1b5c833)

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/1b5c8337577eea64972856b0466a7fbc36683540

>---------------------------------------------------------------

commit 1b5c8337577eea64972856b0466a7fbc36683540
Author: Simon Peyton Jones <[email protected]>
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
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.