ghc-lib-0.20201101: The GHC API, decoupled from GHC versions
Safe HaskellNone
LanguageHaskell2010

GHC.Tc.TyCl.Build

Synopsis

Documentation

buildDataCon :: FamInstEnvs -> Name -> Bool -> TyConRepName -> [HsSrcBang] -> Maybe [HsImplBang] -> [FieldLabel] -> [TyVar] -> [TyCoVar] -> [InvisTVBinder] -> [EqSpec] -> KnotTied ThetaType -> [KnotTied (Scaled Type)] -> KnotTied Type -> KnotTied TyCon -> NameEnv ConTag -> TcRnIf m n DataCon Source #

buildPatSyn Source #

Arguments

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

Univ and req

-> ([InvisTVBinder], ThetaType)

Ex and prov

-> [Type]

Argument types

-> Type

Result type

-> [FieldLabel]

Field labels for a record pattern synonym

-> PatSyn 

type MethInfo = (Name, Type, Maybe (DefMethSpec (SrcSpan, Type))) Source #

buildClass :: Name -> [TyConBinder] -> [Role] -> [FunDep TyVar] -> Maybe (KnotTied ThetaType, [ClassATItem], [KnotTied MethInfo], ClassMinimalDef) -> TcRnIf m n Class Source #

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.

newImplicitBinder :: Name -> (OccName -> OccName) -> TcRnIf m n Name Source #

newTyConRepName :: Name -> TcRnIf gbl lcl TyConRepName Source #

Make the TyConRepName for this TyCon