[project @ 1996-02-06 14:32:22 by dnt]
[ghc-hetmet.git] / ghc / compiler / typecheck / Typecheck.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface Typecheck where
3 import AbsSyn(Module)
4 import Bag(Bag)
5 import CE(CE(..))
6 import Class(Class)
7 import CmdLineOpts(GlobalSwitch)
8 import E(E)
9 import ErrUtils(Error(..))
10 import FiniteMap(FiniteMap)
11 import HsBinds(Bind, Binds, Sig)
12 import HsDecls(ClassDecl, DataTypeSig, DefaultDecl, FixityDecl, InstDecl, SpecialisedInstanceSig, TyDecl)
13 import HsExpr(ArithSeqInfo, Expr, Qual)
14 import HsImpExp(IE, ImportedInterface)
15 import HsLit(Literal)
16 import HsMatches(Match)
17 import HsPat(InPat, RenamedPat(..), TypecheckedPat)
18 import HsTypes(PolyType)
19 import Id(Id)
20 import Inst(Inst)
21 import Maybes(Labda, MaybeErr)
22 import Name(Name)
23 import NameTypes(FullName, ShortName)
24 import PreludePS(_PackedString)
25 import Pretty(PprStyle, Pretty(..), PrettyRep)
26 import ProtoName(ProtoName)
27 import SplitUniq(SplitUniqSupply)
28 import SrcLoc(SrcLoc)
29 import TcInstDcls(InstInfo)
30 import TyCon(TyCon)
31 import TyVar(TyVar)
32 import UniType(UniType)
33 import UniqFM(UniqFM)
34 import Unique(Unique)
35 data Module a b 
36 data Bag a 
37 type CE = UniqFM Class
38 data GlobalSwitch 
39 data E 
40 type Error = PprStyle -> Int -> Bool -> PrettyRep
41 data Binds a b 
42 data FixityDecl a 
43 data Expr a b 
44 data InPat a 
45 type RenamedPat = InPat Name
46 data TypecheckedPat 
47 data Id 
48 data Inst 
49 data Labda a 
50 data MaybeErr a b 
51 data Name 
52 data PprStyle 
53 type Pretty = Int -> Bool -> PrettyRep
54 data PrettyRep 
55 data ProtoName 
56 data SplitUniqSupply 
57 data InstInfo 
58 data UniqFM a 
59 typecheckModule :: (GlobalSwitch -> Bool) -> SplitUniqSupply -> (ProtoName -> Labda Name, ProtoName -> Labda Name) -> Module Name (InPat Name) -> MaybeErr ((Binds Id TypecheckedPat, Binds Id TypecheckedPat, Binds Id TypecheckedPat, [(Inst, Expr Id TypecheckedPat)]), ([FixityDecl Name], [Id], UniqFM Class, UniqFM TyCon, Bag InstInfo), FiniteMap TyCon [(Bool, [Labda UniType])], E, PprStyle -> Int -> Bool -> PrettyRep) (Bag (PprStyle -> Int -> Bool -> PrettyRep))
60