[project @ 1996-03-19 08:58:34 by partain]
[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 TcHsSyn(TcIdOcc)
12 import Name(Name)
13 import TcType(TcMaybe)
14 import SST(FSST_R)
15 import Unique(Unique)
16 import TyVar(GenTyVar)
17 import TcEnv(TcEnv)
18 import TcMonad(TcDown)
19 import PreludeGlaST(_MutableArray)
20 import Bag(Bag)
21 import Type(GenType)
22 import Inst(Inst)
23
24 tcGRHSsAndBinds :: 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                              GenType (GenTyVar (_MutableArray a Int (TcMaybe a))) Unique
36                             )
37                             ()
38 \end{code}