ghc-8.8.1: The GHC API
Safe HaskellNone
LanguageHaskell2010

TysWiredIn

Description

This module is about types that can be defined in Haskell, but which must be wired into the compiler nonetheless. C.f module TysPrim

Synopsis

Helper functions defined here

All wired in things

isBuiltInOcc_maybe :: OccName -> Maybe Name Source #

Built-in syntax isn't "in scope" so these OccNames map to wired-in Names with BuiltInSyntax. However, this should only be necessary while resolving names produced by Template Haskell splices since we take care to encode built-in syntax names specially in interface files. See Note [Symbol table representation of names].

Moreover, there is no need to include names of things that the user can't write (e.g. type representation bindings like $tc(,,,)).

Bool

Ordering

Boxing primitive types

Char

Double

Float

Int

Word

Word8

List

mkPromotedListTy Source #

Arguments

:: Kind

of the elements of the list

-> [Type]

elements

-> Type 

Make a *promoted* list.

Maybe

Tuples

mkTupleTy :: Boxity -> [Type] -> Type Source #

Make a tuple type. The list of types should not include any RuntimeRep specifications.

mkBoxedTupleTy :: [Type] -> Type Source #

Build the type of a small tuple that holds the specified type of thing

unboxedTupleKind :: [Type] -> Kind Source #

Specialization of unboxedTupleSumKind for tuples

unboxedSumKind :: [Type] -> Kind Source #

Specialization of unboxedTupleSumKind for sums

Constraint tuples

cTupleTyConNameArity_maybe :: Name -> Maybe Arity Source #

If the given name is that of a constraint tuple, return its arity. Note that this is inefficient.

Any

Sums

sumTyCon :: Arity -> TyCon Source #

Type constructor for n-ary unboxed sum.

sumDataCon :: ConTag -> Arity -> DataCon Source #

Data constructor for i-th alternative of a n-ary unboxed sum.

Kinds

Equality predicates

RuntimeRep and friends