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 SuperclassCycle
- addTyConsToGblEnv :: [TyCon] -> TcM (TcGblEnv, ThBindEnv)
- 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
inferRoles :: HscSource -> RoleAnnotEnv -> [TyCon] -> Name -> [Role] Source #
Implicits
mkDefaultMethodType :: Class -> Id -> DefMethSpec Type -> Type Source #
Record selectors
mkOneRecordSelector :: [ConLike] -> RecSelParent -> FieldLabel -> FieldSelectors -> (Id, LHsBind GhcRn) Source #