\begin{code} interface HsLoop where import HsMatches( Match, GRHSsAndBinds, pprMatch, pprMatches, pprGRHSsAndBinds ) import HsExpr ( HsExpr, pprExpr ) import HsDecls ( ConDecl ) import Name ( NamedThing ) import Outputable ( Outputable, PprStyle ) import Pretty ( Doc ) -- HsMatches outputs data Match tyvar uvar id pat data GRHSsAndBinds tyvar uvar id pat pprGRHSsAndBinds :: (NamedThing id, Outputable id, Outputable pat, Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar) => PprStyle -> Bool -> GRHSsAndBinds tyvar uvar id pat -> Doc pprMatches :: (NamedThing id, Outputable id, Outputable pat, Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar) => PprStyle -> (Bool, Doc) -> [Match tyvar uvar id pat] -> Doc pprMatch :: (NamedThing id, Outputable id, Outputable pat, Eq tyvar, Outputable tyvar, Eq uvar, Outputable uvar) => PprStyle -> Bool -> Match tyvar uvar id pat -> Doc -- HsExpr outputs data HsExpr tyvar uvar id pat pprExpr :: (NamedThing c, Outputable c, Outputable d, Eq a, Outputable a, Eq b, Outputable b) => PprStyle -> HsExpr a b c d -> Doc \end{code}