pprSkolInfo (PatSkol cl mc) = case cl of
    RealDataCon dc -> sep [ ptext (sLit "a pattern with constructor")
                          , nest 2 $ ppr dc <+> dcolon
                            <+> pprType (dataConUserType dc) <> comma
                            -- pprType prints forall's regardless of -fprint-explict-foralls
                            -- which is what we want here, since we might be saying
                            -- type variable 't' is bound by ...
                          , ptext (sLit "in") <+> pprMatchContext mc ]
    PatSynCon ps -> sep [ ptext (sLit "a pattern with pattern synonym")
                        , nest 2 $ ppr ps <+> dcolon
                          <+> pprType (patSynType ps) <> comma
                        , ptext (sLit "in") <+> pprMatchContext mc ]
pprSkolInfo (PatSkol cl mc) = case cl of
    RealDataCon dc -> sep [ ptext (sLit "a pattern with constructor")
                          , nest 2 $ ppr dc <+> dcolon
                            <+> pprType (dataConUserType dc) <> comma
                            -- pprType prints forall's regardless of -fprint-explict-foralls
                            -- which is what we want here, since we might be saying
                            -- type variable 't' is bound by ...
                          , ptext (sLit "in") <+> pprMatchContext mc ]
    PatSynCon ps -> sep [ ptext (sLit "a pattern with pattern synonym")
                        , nest 2 $ ppr ps <+> dcolon
                          <+> pprType (patSynType ps) <> comma
                        , ptext (sLit "in") <+> pprMatchContext mc ]
pprSkolInfo (PatSkol cl mc) = case cl of
    RealDataCon dc -> sep [ ptext (sLit "a pattern with constructor")
                          , nest 2 $ ppr dc <+> dcolon
                            <+> pprType (dataConUserType dc) <> comma
                            -- pprType prints forall's regardless of -fprint-explict-foralls
                            -- which is what we want here, since we might be saying
                            -- type variable 't' is bound by ...
                          , ptext (sLit "in") <+> pprMatchContext mc ]
    PatSynCon ps -> sep [ ptext (sLit "a pattern with pattern synonym")
                        , nest 2 $ ppr ps <+> dcolon
                          <+> pprType (patSynType ps) <> comma
                        , ptext (sLit "in") <+> pprMatchContext mc ]