Safe Haskell | None |
---|---|
Language | GHC2021 |
Synopsis
- data Class
- type ClassOpItem = (Id, DefMethInfo)
- data ClassATItem = ATI TyCon (Maybe (Type, TyFamEqnValidityInfo))
- data TyFamEqnValidityInfo
- type ClassMinimalDef = BooleanFormula Name
- type DefMethInfo = Maybe (Name, DefMethSpec Type)
- pprDefMethInfo :: DefMethInfo -> SDoc
- type FunDep a = ([a], [a])
- pprFundeps :: Outputable a => [FunDep a] -> SDoc
- pprFunDep :: Outputable a => FunDep a -> SDoc
- mkClass :: Name -> [TyVar] -> [FunDep TyVar] -> [PredType] -> [Id] -> [ClassATItem] -> [ClassOpItem] -> ClassMinimalDef -> TyCon -> Class
- mkAbstractClass :: Name -> [TyVar] -> [FunDep TyVar] -> TyCon -> Class
- classTyVars :: Class -> [TyVar]
- classArity :: Class -> Arity
- classKey :: Class -> Unique
- className :: Class -> Name
- classATs :: Class -> [TyCon]
- classATItems :: Class -> [ClassATItem]
- classTyCon :: Class -> TyCon
- classMethods :: Class -> [Id]
- classOpItems :: Class -> [ClassOpItem]
- classBigSig :: Class -> ([TyVar], [PredType], [Id], [ClassOpItem])
- classExtraBigSig :: Class -> ([TyVar], [FunDep TyVar], [PredType], [Id], [ClassATItem], [ClassOpItem])
- classTvsFds :: Class -> ([TyVar], [FunDep TyVar])
- classSCTheta :: Class -> [PredType]
- classHasSCs :: Class -> Bool
- classAllSelIds :: Class -> [Id]
- classSCSelId :: Class -> Int -> Id
- classSCSelIds :: Class -> [Id]
- classMinimalDef :: Class -> ClassMinimalDef
- classHasFds :: Class -> Bool
- isAbstractClass :: Class -> Bool
Documentation
Instances
NamedThing Class Source # | |
Uniquable Class Source # | |
Outputable Class Source # | |
Data Class Source # | |
Defined in GHC.Core.Class gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Class -> c Class # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Class # dataTypeOf :: Class -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Class) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Class) # gmapT :: (forall b. Data b => b -> b) -> Class -> Class # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Class -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Class -> r # gmapQ :: (forall d. Data d => d -> u) -> Class -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Class -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Class -> m Class # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Class -> m Class # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Class -> m Class # | |
Eq Class Source # | |
type ClassOpItem = (Id, DefMethInfo) Source #
data ClassATItem Source #
ATI TyCon (Maybe (Type, TyFamEqnValidityInfo)) | Default associated type (if any) from this template. As per Note [Associated type defaults], the Type has been renamed
to use the class tyvars, while the |
data TyFamEqnValidityInfo Source #
Information about a type family equation, used for validity checking of closed type family equations and associated type family default equations.
This type exists to delay validity-checking after typechecking type declaration groups, to avoid cyclic evaluation inside the typechecking knot.
See Note [Type-checking default assoc decls]
in GHC.Tc.TyCl.
NoVI | Used for equations which don't need any validity checking, for example equations imported from another module. |
VI | Information necessary for validity checking of a type family equation. |
|
type ClassMinimalDef = BooleanFormula Name Source #
type DefMethInfo = Maybe (Name, DefMethSpec Type) Source #
pprDefMethInfo :: DefMethInfo -> SDoc Source #
pprFundeps :: Outputable a => [FunDep a] -> SDoc Source #
mkClass :: Name -> [TyVar] -> [FunDep TyVar] -> [PredType] -> [Id] -> [ClassATItem] -> [ClassOpItem] -> ClassMinimalDef -> TyCon -> Class Source #
classTyVars :: Class -> [TyVar] Source #
classArity :: Class -> Arity Source #
classATItems :: Class -> [ClassATItem] Source #
classTyCon :: Class -> TyCon Source #
classMethods :: Class -> [Id] Source #
classOpItems :: Class -> [ClassOpItem] Source #
classBigSig :: Class -> ([TyVar], [PredType], [Id], [ClassOpItem]) Source #
classExtraBigSig :: Class -> ([TyVar], [FunDep TyVar], [PredType], [Id], [ClassATItem], [ClassOpItem]) Source #
classSCTheta :: Class -> [PredType] Source #
classHasSCs :: Class -> Bool Source #
classAllSelIds :: Class -> [Id] Source #
classSCSelIds :: Class -> [Id] Source #
classHasFds :: Class -> Bool Source #
isAbstractClass :: Class -> Bool Source #