Safe Haskell | None |
---|---|
Language | Haskell2010 |
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
- type RolesInfo = Name -> [Role]
- inferRoles :: HscSource -> RoleAnnotEnv -> [TyCon] -> Name -> [Role]
- checkSynCycles :: Unit -> [TyCon] -> [LTyClDecl GhcRn] -> TcM ()
- checkClassCycles :: Class -> Maybe SDoc
- addTyConsToGblEnv :: [TyCon] -> TcM TcGblEnv
- mkDefaultMethodType :: Class -> Id -> DefMethSpec Type -> Type
- tcRecSelBinds :: [(Id, LHsBind GhcRn)] -> TcM TcGblEnv
- mkRecSelBinds :: [TyCon] -> [(Id, LHsBind GhcRn)]
- mkOneRecordSelector :: [ConLike] -> RecSelParent -> FieldLabel -> FieldSelectors -> (Id, LHsBind GhcRn)
Documentation
checkSynCycles :: Unit -> [TyCon] -> [LTyClDecl GhcRn] -> TcM () Source #
checkClassCycles :: Class -> Maybe SDoc Source #
Implicits
addTyConsToGblEnv :: [TyCon] -> TcM TcGblEnv Source #
Record selectors
tcRecSelBinds :: [(Id, LHsBind GhcRn)] -> TcM TcGblEnv Source #
mkRecSelBinds :: [TyCon] -> [(Id, LHsBind GhcRn)] Source #
mkOneRecordSelector :: [ConLike] -> RecSelParent -> FieldLabel -> FieldSelectors -> (Id, LHsBind GhcRn) Source #