[project @ 1996-03-19 08:58:34 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 Outputable( NamedThing, Outputable )
7 import HsBinds ( Bind, HsBinds, MonoBinds, Sig, nullBinds, nullMonoBinds )
8 import HsDecls ( ConDecl )
9
10 -- HsExpr outputs
11 data HsExpr tyvar uvar id pat
12
13 instance (NamedThing id, Outputable id, Outputable pat,
14           Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar)
15   => Outputable (HsExpr tyvar uvar id pat)
16
17
18 -- HsBinds outputs
19 data Sig id
20 instance (NamedThing name, Outputable name) => Outputable (Sig name)
21
22 data Bind tyvar uvar id pat
23
24 data HsBinds tyvar uvar id pat
25
26 instance (Outputable pat, NamedThing id, Outputable id,
27           Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar) =>
28                 Outputable (HsBinds tyvar uvar id pat)
29
30 data MonoBinds tyvar uvar id pat
31
32 instance (NamedThing id, Outputable id, Outputable pat,
33           Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar) =>
34                 Outputable (MonoBinds tyvar uvar id pat)
35
36 nullBinds     :: HsBinds tyvar uvar id pat -> Bool
37 nullMonoBinds :: MonoBinds tyvar uvar id pat -> Bool
38
39 -- HsDecls outputs
40 data ConDecl name
41 \end{code}