[project @ 1996-07-25 20:43:49 by partain]
[ghc-hetmet.git] / ghc / compiler / hsSyn / HsLoop.lhi
1 \begin{code}
2
3 interface HsLoop where
4
5 import HsExpr   ( HsExpr )
6 import HsBinds  ( Bind, 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
14 instance (NamedThing id, Outputable id, Outputable pat,
15           Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar)
16   => Outputable (HsExpr tyvar uvar id pat)
17
18
19 -- HsBinds outputs
20 data Sig id
21 instance (NamedThing name, Outputable name) => Outputable (Sig name)
22
23 data Bind tyvar uvar id pat
24
25 data HsBinds tyvar uvar id pat
26
27 instance (Outputable pat, NamedThing id, Outputable id,
28           Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar) =>
29                 Outputable (HsBinds tyvar uvar id pat)
30
31 data MonoBinds tyvar uvar id pat
32
33 instance (NamedThing id, Outputable id, Outputable pat,
34           Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar) =>
35                 Outputable (MonoBinds tyvar uvar id pat)
36
37 nullBinds     :: HsBinds tyvar uvar id pat -> Bool
38 nullMonoBinds :: MonoBinds tyvar uvar id pat -> Bool
39
40 -- HsDecls outputs
41 data ConDecl name
42 \end{code}