-
-data DsMatchKind
- = FunMatch Id
- | CaseMatch
- | LambdaMatch
- | PatBindMatch
- | DoBindMatch
-
-pprDsWarnings :: PprStyle -> Bag DsMatchContext -> Pretty
-pprDsWarnings sty warns
- = ppAboves (map pp_cxt (bagToList warns))
- where
- pp_cxt NoMatchContext = ppPStr SLIT("Some match is shadowed; I don't know what")
- pp_cxt (DsMatchContext kind pats loc)
- = ppHang (ppBesides [ppr PprForUser loc, ppPStr SLIT(": ")])
- 4 (ppHang (ppPStr SLIT("Pattern match(es) completely overlapped:"))
- 4 (pp_match kind pats))
-
- pp_match (FunMatch fun) pats
- = ppHang (ppr sty fun)
- 4 (ppSep [ppSep (map (ppr sty) pats), ppPStr SLIT("= ...")])
-
- pp_match CaseMatch pats
- = ppHang (ppPStr SLIT("in a case alternative:"))
- 4 (ppSep [ppSep (map (ppr sty) pats), pp_arrow_dotdotdot])
-
- pp_match PatBindMatch pats
- = ppHang (ppPStr SLIT("in a pattern binding:"))
- 4 (ppSep [ppSep (map (ppr sty) pats), pp_arrow_dotdotdot])
-
- pp_match LambdaMatch pats
- = ppHang (ppPStr SLIT("in a lambda abstraction:"))
- 4 (ppSep [ppSep (map (ppr sty) pats), pp_arrow_dotdotdot])
-
- pp_match DoBindMatch pats
- = ppHang (ppPStr SLIT("in a `do' pattern binding:"))
- 4 (ppSep [ppSep (map (ppr sty) pats), pp_arrow_dotdotdot])
-
- pp_arrow_dotdotdot = ppPStr SLIT("-> ...")