Class
- data Class
- type ClassOpItem = (Id, DefMeth)
- data DefMeth
- = NoDefMeth
- | DefMeth Name
- | GenDefMeth
- defMethSpecOfDefMeth :: DefMeth -> DefMethSpec
- type FunDep a = ([a], [a])
- pprFundeps :: Outputable a => [FunDep a] -> SDoc
- pprFunDep :: Outputable a => FunDep a -> SDoc
- mkClass :: Name -> [TyVar] -> [([TyVar], [TyVar])] -> [PredType] -> Int -> [Id] -> [TyCon] -> [ClassOpItem] -> TyCon -> Class
- classTyVars :: Class -> [TyVar]
- classArity :: Class -> Arity
- classSCNEqs :: Class -> Int
- classKey :: Class -> Unique
- className :: Class -> Name
- classATs :: Class -> [TyCon]
- classTyCon :: Class -> TyCon
- classMethods :: Class -> [Id]
- classOpItems :: Class -> [ClassOpItem]
- classBigSig :: Class -> ([TyVar], [PredType], [Id], [ClassOpItem])
- classExtraBigSig :: Class -> ([TyVar], [FunDep TyVar], [PredType], [Id], [TyCon], [ClassOpItem])
- classTvsFds :: Class -> ([TyVar], [FunDep TyVar])
- classSCTheta :: Class -> [PredType]
- classAllSelIds :: Class -> [Id]
- classSCSelId :: Class -> Int -> Id
Documentation
data Class
type ClassOpItem = (Id, DefMeth)
defMethSpecOfDefMeth :: DefMeth -> DefMethSpec
Convert a DefMethSpec
to a DefMeth
, which discards the name field in
the DefMeth
constructor of the DefMeth
.
type FunDep a = ([a], [a])
pprFundeps :: Outputable a => [FunDep a] -> SDoc
pprFunDep :: Outputable a => FunDep a -> SDoc
mkClass :: Name -> [TyVar] -> [([TyVar], [TyVar])] -> [PredType] -> Int -> [Id] -> [TyCon] -> [ClassOpItem] -> TyCon -> Class
classTyVars :: Class -> [TyVar]
classArity :: Class -> Arity
classSCNEqs :: Class -> Int
classTyCon :: Class -> TyCon
classMethods :: Class -> [Id]
classOpItems :: Class -> [ClassOpItem]
classBigSig :: Class -> ([TyVar], [PredType], [Id], [ClassOpItem])
classExtraBigSig :: Class -> ([TyVar], [FunDep TyVar], [PredType], [Id], [TyCon], [ClassOpItem])
classTvsFds :: Class -> ([TyVar], [FunDep TyVar])
classSCTheta :: Class -> [PredType]
classAllSelIds :: Class -> [Id]
classSCSelId :: Class -> Int -> Id