[project @ 1997-09-04 19:55:23 by sof]
[ghc-hetmet.git] / ghc / compiler / typecheck / TcLoop.lhi
1 This module breaks the loops among the typechecker modules
2 TcExpr, TcBinds, TcMonoBnds, TcQuals, TcGRHSs, TcMatches.
3
4 \begin{code}
5 interface TcLoop where
6
7 import TcGRHSs( tcGRHSsAndBinds )
8 import HsMatches(GRHSsAndBinds)
9 import HsPat(InPat, OutPat)
10 import HsSyn(Fake)
11 import TcType(TcIdOcc, TcMaybe)
12 import SST(FSST_R)
13 import Unique(Unique)
14 import Name(Name)
15 import TyVar(GenTyVar)
16 import TcEnv(TcEnv)
17 import TcMonad(TcDown)
18 import PreludeGlaST(_MutableArray)
19 import Bag(Bag)
20 import Type(GenType)
21 import Inst(Inst)
22
23 tcGRHSsAndBinds :: GenType (GenTyVar (_MutableArray a Int (TcMaybe a))) Unique
24                 -> GRHSsAndBinds Fake Fake Name (InPat Name) 
25                 -> TcDown a 
26                 -> TcEnv a 
27                 -> State# a 
28                 -> FSST_R a (GRHSsAndBinds (GenTyVar (_MutableArray a Int (TcMaybe a))) 
29                                            Unique 
30                                            (TcIdOcc a)
31                                            (OutPat (GenTyVar (_MutableArray a Int (TcMaybe a))) 
32                                                    Unique 
33                                                    (TcIdOcc a)),
34                              Bag (Inst a)
35                             )
36                             ()
37 \end{code}