ghc-8.4.2: 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

isLiftedTypeKind :: Kind -> Bool Source #

This version considers Constraint to be distinct from *. Returns True if the argument is equivalent to Type and False otherwise.

isUnliftedTypeKind :: Kind -> Bool Source #

Returns True if the kind classifies unlifted types and False otherwise. Note that this returns False for levity-polymorphic kinds, which may be specialized to a kind that classifies unlifted types.

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?

tcIsStarKind :: Kind -> Bool Source #

Is this kind equivalent to *?

isKindLevPoly :: Kind -> Bool Source #

Tests whether the given kind (which should look like TYPE x) is something other than a constructor tree (that is, constructors at every node).