projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TysWiredIn is now warning-free
[ghc-hetmet.git]
/
compiler
/
coreSyn
/
ExternalCore.lhs
diff --git
a/compiler/coreSyn/ExternalCore.lhs
b/compiler/coreSyn/ExternalCore.lhs
index
fa17734
..
a326a54
100644
(file)
--- a/
compiler/coreSyn/ExternalCore.lhs
+++ b/
compiler/coreSyn/ExternalCore.lhs
@@
-1,8
+1,7
@@
%
%
-% (c) The University of Glasgow 2001
+% (c) The University of Glasgow 2001-2006
%
\begin{code}
%
\begin{code}
-
module ExternalCore where
module ExternalCore where
@@
-11,17
+10,19
@@
data Module
data Tdef
= Data (Qual Tcon) [Tbind] [Cdef]
data Tdef
= Data (Qual Tcon) [Tbind] [Cdef]
- | Newtype (Qual Tcon) [Tbind] (Maybe Ty)
+ | Newtype (Qual Tcon) (Qual Tcon) [Tbind] (Maybe Ty)
data Cdef
data Cdef
- = Constr Dcon [Tbind] [Ty]
- | GadtConstr Dcon Ty
+ = Constr (Qual Dcon) [Tbind] [Ty]
+ | GadtConstr (Qual Dcon) Ty
data Vdefg
= Rec [Vdef]
| Nonrec Vdef
data Vdefg
= Rec [Vdef]
| Nonrec Vdef
-type Vdef = (Bool,Var,Ty,Exp) -- Top level bindings are unqualified now
+-- Top-level bindings are qualified, so that the printer doesn't have to pass
+-- around the module name.
+type Vdef = (Bool,Qual Var,Ty,Exp)
data Exp
= Var (Qual Var)
data Exp
= Var (Qual Var)
@@
-32,9
+33,11
@@
data Exp
| Lam Bind Exp
| Let Vdefg Exp
| Case Exp Vbind Ty [Alt] {- non-empty list -}
| Lam Bind Exp
| Let Vdefg Exp
| Case Exp Vbind Ty [Alt] {- non-empty list -}
- | Coerce Ty Exp
+ | Cast Exp Ty
| Note String Exp
| Note String Exp
- | External String Ty
+ | External String String Ty {- target name, convention, and type -}
+ | DynExternal String Ty {- convention and type (incl. Addr# of target as first arg) -}
+ | Label String
data Bind
= Vb Vbind
data Bind
= Vb Vbind
@@
-60,6
+63,7
@@
data Kind
| Kunboxed
| Kopen
| Karrow Kind Kind
| Kunboxed
| Kopen
| Karrow Kind Kind
+ | Keq Ty Ty
data Lit
= Lint Integer Ty
data Lit
= Lint Integer Ty
@@
-78,10
+82,13
@@
type Qual t = (Mname,t)
type Id = String
type Id = String
-primMname = "GHCziPrim"
+primMname :: Mname
+-- For truly horrible reasons, this must be z-encoded.
+-- With any hope, the z-encoding will die soon.
+primMname = "ghczmprim:GHCziPrim"
tcArrow :: Qual Tcon
tcArrow :: Qual Tcon
-tcArrow = (primMname, "ZLzmzgZR")
+tcArrow = (primMname, "(->)")
\end{code}
\end{code}