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

GHC.Tc.TyCl.Utils

Description

Analysis functions over data types. Specifically, detecting recursive types.

This stuff is only used for source-code decls; it's recorded in interface files for imported data types.

Synopsis

Documentation

type RolesInfo = Name -> [Role] Source #

inferRoles :: HscSource -> RoleAnnotEnv -> [TyCon] -> Name -> [Role] Source #

checkSynCycles :: Unit -> [TyCon] -> [LTyClDecl GhcRn] -> TcM () Source #

Checks if any of the passed in TyCons have cycles. Takes the Unit of the home package (as we can avoid checking those TyCons: cycles never go through foreign packages) and the corresponding LTyClDecl Name for each TyCon, so we can give better error messages.

Implicits

addTyConsToGblEnv :: [TyCon] -> TcM TcGblEnv Source #

mkDefaultMethodType :: Class -> Id -> DefMethSpec Type -> Type Source #

Record selectors

tcRecSelBinds :: [(Id, LHsBind GhcRn)] -> TcM TcGblEnv Source #

mkRecSelBinds :: [TyCon] -> [(Id, LHsBind GhcRn)] Source #

mkOneRecordSelector :: [ConLike] -> RecSelParent -> FieldLabel -> (Id, LHsBind GhcRn) Source #