ghc-8.0.0.20160204: The GHC API

Safe HaskellNone
LanguageHaskell2010

Kind

Contents

Synopsis

Main data type

type Kind = Type Source

The key type representing kinds in the compiler.

Predicates on Kinds

returnsTyCon :: Unique -> Type -> Bool Source

Does the given type "end" in the given tycon? For example k -> [a] -> * ends in * and Maybe a -> [a] ends in [].

classifiesTypeWithValues :: Kind -> Bool Source

Does this classify a type allowed to have values? Responds True to things like *, #, TYPE Lifted, TYPE v, Constraint.

True of any sub-kind of OpenTypeKind

isStarKind :: Kind -> Bool Source

Is this kind equivalent to *?

isStarKindSynonymTyCon :: TyCon -> Bool Source

Is the tycon Constraint?

isLevityPolymorphic :: Kind -> Bool Source

Tests whether the given type looks like "TYPE v", where v is a variable.

isLevityPolymorphic_maybe :: Kind -> Maybe TyVar Source

Retrieves a levity variable in the given kind, if the kind is of the form "TYPE v".