1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface TcModule where
8 import CmdLineOpts(GlobalSwitch)
10 import ErrUtils(Error(..))
11 import FiniteMap(FiniteMap)
12 import HsBinds(Bind, Binds, MonoBinds, Sig)
13 import HsDecls(ClassDecl, DataTypeSig, DefaultDecl, FixityDecl, InstDecl, SpecialisedInstanceSig, TyDecl)
14 import HsExpr(ArithSeqInfo, Expr, Qual)
15 import HsImpExp(IE, ImportedInterface)
17 import HsMatches(Match)
18 import HsPat(InPat, RenamedPat(..), TypecheckedPat)
19 import HsTypes(PolyType)
24 import NameTypes(FullName, ShortName)
25 import PreludePS(_PackedString)
26 import Pretty(Delay, PprStyle, Pretty(..), PrettyRep)
27 import ProtoName(ProtoName)
28 import SplitUniq(SplitUniqSupply)
32 import TcInstDcls(InstInfo)
33 import TcMonad(TcResult)
35 import TyVar(TyVar, TyVarTemplate)
36 import UniType(UniType)
41 type CE = UniqFM Class
43 type Error = PprStyle -> Int -> Bool -> PrettyRep
48 type RenamedPat = InPat Name
55 type Pretty = Int -> Bool -> PrettyRep
60 type TCE = UniqFM TyCon
64 tcModule :: E -> (ProtoName -> Labda Name, ProtoName -> Labda Name) -> Module Name (InPat Name) -> (GlobalSwitch -> Bool) -> [UniType] -> Subst -> SplitUniqSupply -> Bag (PprStyle -> Int -> Bool -> PrettyRep) -> SrcLoc -> TcResult ((Binds Id TypecheckedPat, Binds Id TypecheckedPat, Binds Id TypecheckedPat, [(Inst, Expr Id TypecheckedPat)]), ([FixityDecl Name], [Id], UniqFM Class, UniqFM TyCon, Bag InstInfo), FiniteMap TyCon [[Labda UniType]], E, PprStyle -> Int -> Bool -> PrettyRep)