[project @ 1998-11-26 09:17:22 by sof]
[ghc-hetmet.git] / ghc / compiler / coreSyn / AnnCoreSyn.lhs
index 9f51e1a..9ab2224 100644 (file)
@@ -8,73 +8,78 @@ than that, just like @CoreSyntax@.  (Important to be sure that it {\em
 really is} just like @CoreSyntax@.)
 
 \begin{code}
-#include "HsVersions.h"
-
 module AnnCoreSyn (
-       AnnCoreBinding(..), AnnCoreExpr(..),
+       AnnCoreBinding(..), AnnCoreExpr,
        AnnCoreExpr'(..),       -- v sad that this must be exported
        AnnCoreCaseAlts(..), AnnCoreCaseDefault(..),
 
        deAnnotate -- we may eventually export some of the other deAnners
     ) where
 
-import Ubiq{-uitous-}
+#include "HsVersions.h"
 
 import CoreSyn
+
+import Id         ( Id )
+import Literal    ( Literal )
+import PrimOp     ( PrimOp )
+import CostCentre ( CostCentre )
+import Type       ( GenType )
+
 \end{code}
 
 \begin{code}
-data AnnCoreBinding val_bdr val_occ tyvar uvar annot
-  = AnnNonRec val_bdr (AnnCoreExpr val_bdr val_occ tyvar uvar annot)
-  | AnnRec    [(val_bdr, AnnCoreExpr val_bdr val_occ tyvar uvar annot)]
+data AnnCoreBinding val_bdr val_occ flexi annot
+  = AnnNonRec val_bdr (AnnCoreExpr val_bdr val_occ flexi annot)
+  | AnnRec    [(val_bdr, AnnCoreExpr val_bdr val_occ flexi annot)]
 \end{code}
 
 \begin{code}
-type AnnCoreExpr val_bdr val_occ tyvar uvar annot
-  = (annot, AnnCoreExpr' val_bdr val_occ tyvar uvar annot)
+type AnnCoreExpr val_bdr val_occ flexi annot
+  = (annot, AnnCoreExpr' val_bdr val_occ flexi annot)
 
-data AnnCoreExpr' val_bdr val_occ tyvar uvar annot
+data AnnCoreExpr' val_bdr val_occ flexi annot
   = AnnVar     val_occ
   | AnnLit     Literal
 
-  | AnnCon     Id     [GenCoreArg val_occ tyvar uvar]
-  | AnnPrim    PrimOp [GenCoreArg val_occ tyvar uvar]
+  | AnnCon     Id     [GenCoreArg val_occ flexi]
+  | AnnPrim    PrimOp [GenCoreArg val_occ flexi]
 
-  | AnnLam     (GenCoreBinder val_bdr tyvar uvar)
-               (AnnCoreExpr val_bdr val_occ tyvar uvar annot)
+  | AnnLam     (GenCoreBinder val_bdr flexi)
+               (AnnCoreExpr val_bdr val_occ flexi annot)
 
-  | AnnApp     (AnnCoreExpr val_bdr val_occ tyvar uvar annot)
-               (GenCoreArg  val_occ tyvar uvar)
+  | AnnApp     (AnnCoreExpr val_bdr val_occ flexi annot)
+               (GenCoreArg  val_occ flexi)
 
-  | AnnCase    (AnnCoreExpr val_bdr val_occ tyvar uvar annot)
-               (AnnCoreCaseAlts val_bdr val_occ tyvar uvar annot)
+  | AnnCase    (AnnCoreExpr val_bdr val_occ flexi annot)
+               (AnnCoreCaseAlts val_bdr val_occ flexi annot)
 
-  | AnnLet     (AnnCoreBinding val_bdr val_occ tyvar uvar annot)
-               (AnnCoreExpr val_bdr val_occ tyvar uvar annot)
+  | AnnLet     (AnnCoreBinding val_bdr val_occ flexi annot)
+               (AnnCoreExpr val_bdr val_occ flexi annot)
 
-  | AnnSCC     CostCentre
-               (AnnCoreExpr val_bdr val_occ tyvar uvar annot)
+  | AnnNote    (CoreNote flexi)
+               (AnnCoreExpr val_bdr val_occ flexi annot)
 \end{code}
 
 \begin{code}
-data AnnCoreCaseAlts val_bdr val_occ tyvar uvar annot
+data AnnCoreCaseAlts val_bdr val_occ flexi annot
   = AnnAlgAlts [(Id,
                  [val_bdr],
-                 AnnCoreExpr val_bdr val_occ tyvar uvar annot)]
-               (AnnCoreCaseDefault val_bdr val_occ tyvar uvar annot)
+                 AnnCoreExpr val_bdr val_occ flexi annot)]
+               (AnnCoreCaseDefault val_bdr val_occ flexi annot)
   | AnnPrimAlts        [(Literal,
-                 AnnCoreExpr val_bdr val_occ tyvar uvar annot)]
-               (AnnCoreCaseDefault val_bdr val_occ tyvar uvar annot)
+                 AnnCoreExpr val_bdr val_occ flexi annot)]
+               (AnnCoreCaseDefault val_bdr val_occ flexi annot)
 
-data AnnCoreCaseDefault val_bdr val_occ tyvar uvar annot
+data AnnCoreCaseDefault val_bdr val_occ flexi annot
   = AnnNoDefault
   | AnnBindDefault  val_bdr
-                   (AnnCoreExpr val_bdr val_occ tyvar uvar annot)
+                   (AnnCoreExpr val_bdr val_occ flexi annot)
 \end{code}
 
 \begin{code}
-deAnnotate :: AnnCoreExpr val_bdr val_occ tyvar uvar ann
-          -> GenCoreExpr val_bdr val_occ tyvar uvar
+deAnnotate :: AnnCoreExpr val_bdr val_occ flexi ann
+          -> GenCoreExpr val_bdr val_occ flexi
 
 deAnnotate (_, AnnVar  v)          = Var v
 deAnnotate (_, AnnLit  lit)        = Lit lit
@@ -82,7 +87,7 @@ deAnnotate (_, AnnCon con args)   = Con con args
 deAnnotate (_, AnnPrim op args)    = Prim op args
 deAnnotate (_, AnnLam  binder body)= Lam binder (deAnnotate body)
 deAnnotate (_, AnnApp  fun arg)    = App (deAnnotate fun) arg
-deAnnotate (_, AnnSCC  lbl body)   = SCC lbl (deAnnotate body)
+deAnnotate (_, AnnNote note body)  = Note note (deAnnotate body)
 
 deAnnotate (_, AnnLet bind body)
   = Let (deAnnBind bind) (deAnnotate body)