1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface AnnCoreSyn where
3 import BasicLit(BasicLit)
4 import CoreSyn(CoreAtom, CoreExpr)
5 import CostCentre(CostCentre)
7 import Outputable(NamedThing, Outputable)
8 import PreludePS(_PackedString)
9 import PreludeRatio(Ratio(..))
10 import PrimKind(PrimKind)
11 import PrimOps(PrimOp)
14 import UniType(UniType)
15 data AnnCoreBinding a b c = AnnCoNonRec a (c, AnnCoreExpr' a b c) | AnnCoRec [(a, (c, AnnCoreExpr' a b c))]
16 data AnnCoreCaseAlternatives a b c = AnnCoAlgAlts [(Id, [a], (c, AnnCoreExpr' a b c))] (AnnCoreCaseDefault a b c) | AnnCoPrimAlts [(BasicLit, (c, AnnCoreExpr' a b c))] (AnnCoreCaseDefault a b c)
17 data AnnCoreCaseDefault a b c = AnnCoNoDefault | AnnCoBindDefault a (c, AnnCoreExpr' a b c)
18 type AnnCoreExpr a b c = (c, AnnCoreExpr' a b c)
19 data AnnCoreExpr' a b c = AnnCoVar b | AnnCoLit BasicLit | AnnCoCon Id [UniType] [CoreAtom b] | AnnCoPrim PrimOp [UniType] [CoreAtom b] | AnnCoLam [a] (c, AnnCoreExpr' a b c) | AnnCoTyLam TyVar (c, AnnCoreExpr' a b c) | AnnCoApp (c, AnnCoreExpr' a b c) (CoreAtom b) | AnnCoTyApp (c, AnnCoreExpr' a b c) UniType | AnnCoCase (c, AnnCoreExpr' a b c) (AnnCoreCaseAlternatives a b c) | AnnCoLet (AnnCoreBinding a b c) (c, AnnCoreExpr' a b c) | AnnCoSCC CostCentre (c, AnnCoreExpr' a b c)
27 deAnnotate :: (a, AnnCoreExpr' b c a) -> CoreExpr b c
36 instance NamedThing TyCon
37 instance NamedThing TyVar
38 instance Outputable BasicLit
39 instance Outputable PrimOp
40 instance Outputable TyCon
41 instance Outputable TyVar
42 instance Outputable UniType