ghc-7.10.3: The GHC API

Safe HaskellNone
LanguageHaskell2010

BuildTyCl

Synopsis

Documentation

buildSynonymTyCon Source

Arguments

:: Name 
-> [TyVar] 
-> [Role] 
-> Type 
-> Kind

Kind of the RHS

-> TcRnIf m n TyCon 

buildFamilyTyCon Source

Arguments

:: Name 
-> [TyVar] 
-> FamTyConFlav 
-> Kind

Kind of the RHS

-> TyConParent 
-> TcRnIf m n TyCon 

buildAlgTyCon Source

Arguments

:: Name 
-> [TyVar]

Kind variables and type variables

-> [Role] 
-> Maybe CType 
-> ThetaType

Stupid theta

-> AlgTyConRhs 
-> RecFlag 
-> Bool

True = this TyCon is promotable

-> Bool

True = was declared in GADT syntax

-> TyConParent 
-> TyCon 

buildDataCon :: FamInstEnvs -> Name -> Bool -> [HsBang] -> [Name] -> [TyVar] -> [TyVar] -> [(TyVar, Type)] -> ThetaType -> [Type] -> Type -> TyCon -> TcRnIf m n DataCon Source

buildPatSyn Source

Arguments

:: Name 
-> Bool 
-> (Id, Bool) 
-> Maybe (Id, Bool) 
-> ([TyVar], ThetaType)

Univ and req

-> ([TyVar], ThetaType)

Ex and prov

-> [Type]

Argument types

-> Type

Result type

-> PatSyn 

mkNewTyConRhs :: Name -> TyCon -> DataCon -> TcRnIf m n AlgTyConRhs Source

Monadic because it makes a Name for the coercion TyCon We pass the Name of the parent TyCon, as well as the TyCon itself, because the latter is part of a knot, whereas the former is not.