[project @ 1997-06-06 22:27:06 by sof]
[ghc-hetmet.git] / ghc / compiler / hsSyn / HsLoop.lhi
1 \begin{code}
2
3 interface HsLoop where
4
5 import HsMatches( Match, GRHSsAndBinds, pprMatch, pprMatches, pprGRHSsAndBinds )
6 import HsExpr   ( HsExpr, pprExpr )
7 import HsDecls  ( ConDecl )
8 import Name     ( NamedThing )
9 import Outputable ( Outputable, PprStyle )
10 import Pretty   ( Doc )
11
12 -- HsMatches outputs
13 data Match        tyvar uvar id pat
14 data GRHSsAndBinds tyvar uvar id pat
15
16 pprGRHSsAndBinds :: (NamedThing id, Outputable id, Outputable pat,
17                     Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar) =>
18                 PprStyle -> Bool -> GRHSsAndBinds tyvar uvar id pat -> Doc
19
20 pprMatches :: (NamedThing id, Outputable id, Outputable pat,
21                Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar) =>
22                 PprStyle -> (Bool, Doc) -> [Match tyvar uvar id pat] -> Doc
23
24 pprMatch :: (NamedThing id, Outputable id, Outputable pat,
25                Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar) =>
26         PprStyle -> Bool -> Match tyvar uvar id pat -> Doc
27
28 -- HsExpr outputs
29 data HsExpr tyvar uvar id pat
30 pprExpr :: (NamedThing c, Outputable c, Outputable d, Eq a, Outputable a, Eq b, Outputable b)
31         => PprStyle -> HsExpr a b c d -> Doc
32
33 \end{code}