%
-% (c) The University of Glasgow 2001
+% (c) The University of Glasgow 2001-2006
%
\begin{code}
-
module ExternalCore where
= Rec [Vdef]
| Nonrec Vdef
-type Vdef = (Var,Ty,Exp) -- Top level bindings are unqualified now
+type Vdef = (Bool,Var,Ty,Exp) -- Top level bindings are unqualified now
data Exp
= Var (Qual Var)
| Lam Bind Exp
| Let Vdefg Exp
| Case Exp Vbind Ty [Alt] {- non-empty list -}
- | Coerce Ty Exp
+ | Cast Exp Ty
| 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 Kind
= Klifted
| Kunlifted
+ | Kunboxed
| Kopen
| Karrow Kind Kind
+ | Keq Ty Ty
data Lit
= Lint Integer Ty
type Id = String
-primMname = "GHCziPrim"
+primMname :: Mname
+primMname = "base:GHC.Prim"
tcArrow :: Qual Tcon
-tcArrow = (primMname, "ZLzmzgZR")
+tcArrow = (primMname, "(->)")
\end{code}