1cdcbe374847647d95ec9a551a3bdc863450cba5
[ghc-hetmet.git] / ghc / compiler / hsSyn / HsLoop.lhi
1 \begin{code}
2
3 interface HsLoop where
4
5 import HsExpr   ( HsExpr, Stmt )
6 import HsBinds  ( HsBinds, MonoBinds, Sig, nullBinds, nullMonoBinds )
7 import HsDecls  ( ConDecl )
8 import Name     ( NamedThing )
9 import Outputable ( Outputable )
10
11 -- HsExpr outputs
12 data HsExpr tyvar uvar id pat
13 data Stmt   tyvar uvar id pat
14
15 instance (NamedThing id, Outputable id, Outputable pat,
16           Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar)
17   => Outputable (HsExpr tyvar uvar id pat)
18
19 instance (NamedThing id, Outputable id, Outputable pat,
20           Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar)
21   => Outputable (Stmt tyvar uvar id pat)
22
23
24 -- HsBinds outputs
25 data Sig id
26 instance (NamedThing name, Outputable name) => Outputable (Sig name)
27
28 data HsBinds tyvar uvar id pat
29
30 instance (Outputable pat, NamedThing id, Outputable id,
31           Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar) =>
32                 Outputable (HsBinds tyvar uvar id pat)
33
34 data MonoBinds tyvar uvar id pat
35
36 instance (NamedThing id, Outputable id, Outputable pat,
37           Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar) =>
38                 Outputable (MonoBinds tyvar uvar id pat)
39
40 nullBinds     :: HsBinds tyvar uvar id pat -> Bool
41 nullMonoBinds :: MonoBinds tyvar uvar id pat -> Bool
42
43 -- HsDecls outputs
44 data ConDecl name
45 \end{code}