module GHC.Tc.Types.Rank (Rank(..)) where
import GHC.Base (Bool)
import GHC.Utils.Outputable (Outputable, (<+>), parens, ppr, text)
data Rank = ArbitraryRank
| LimitedRank
Bool
Rank
| MonoTypeRankZero
| MonoTypeTyConArg
| MonoTypeSynArg
| MonoTypeConstraint
| MustBeMonoType
instance Outputable Rank where
ppr :: Rank -> SDoc
ppr Rank
ArbitraryRank = forall doc. IsLine doc => String -> doc
text String
"ArbitraryRank"
ppr (LimitedRank Bool
top_forall_ok Rank
r)
= forall doc. IsLine doc => String -> doc
text String
"LimitedRank" forall doc. IsLine doc => doc -> doc -> doc
<+> forall a. Outputable a => a -> SDoc
ppr Bool
top_forall_ok
forall doc. IsLine doc => doc -> doc -> doc
<+> forall doc. IsLine doc => doc -> doc
parens (forall a. Outputable a => a -> SDoc
ppr Rank
r)
ppr Rank
MonoTypeRankZero = forall doc. IsLine doc => String -> doc
text String
"MonoTypeRankZero"
ppr Rank
MonoTypeTyConArg = forall doc. IsLine doc => String -> doc
text String
"MonoTypeTyConArg"
ppr Rank
MonoTypeSynArg = forall doc. IsLine doc => String -> doc
text String
"MonoTypeSynArg"
ppr Rank
MonoTypeConstraint = forall doc. IsLine doc => String -> doc
text String
"MonoTypeConstraint"
ppr Rank
MustBeMonoType = forall doc. IsLine doc => String -> doc
text String
"MustBeMonoType"