{-# OPTIONS_HADDOCK hide #-}moduleDDC.Type.Check.CheckCon(takeKindOfTyCon,takeSortOfKiCon,kindOfTwCon,kindOfTcCon)whereimportDDC.Type.ExpimportDDC.Type.Compounds-- | Take the kind of a `TyCon`, if there is one.takeKindOfTyCon::TyConn->Maybe(Kindn)takeKindOfTyContt=casettof-- Sorts don't have a higher classification.TyConSort_->NothingTyConKindkc->takeSortOfKiConkcTyConWitnesstc->Just$kindOfTwContcTyConSpectc->Just$kindOfTcContcTyConBoundu->Just$typeOfBoundu-- | Take the superkind of an atomic kind constructor.---- * Yields `Nothing` for the kind function (~>) as it doesn't have a sort-- without being fully applied.takeSortOfKiCon::KiCon->Maybe(Sortn)takeSortOfKiConkc=casekcofKiConFun->NothingKiConData->JustsCompKiConRegion->JustsCompKiConEffect->JustsCompKiConClosure->JustsCompKiConWitness->JustsProp-- | Take the kind of a witness type constructor.kindOfTwCon::TwCon->KindnkindOfTwContc=casetcofTwConImpl->kWitness`kFun`(kWitness`kFun`kWitness)TwConPure->kEffect`kFun`kWitnessTwConEmpty->kClosure`kFun`kWitnessTwConGlobal->kRegion`kFun`kWitnessTwConDeepGlobal->kData`kFun`kWitnessTwConConst->kRegion`kFun`kWitnessTwConDeepConst->kData`kFun`kWitnessTwConMutable->kRegion`kFun`kWitnessTwConDeepMutable->kData`kFun`kWitnessTwConLazy->kRegion`kFun`kWitnessTwConHeadLazy->kData`kFun`kWitnessTwConManifest->kRegion`kFun`kWitness-- | Take the kind of a computation type constructor.kindOfTcCon::TcCon->KindnkindOfTcContc=casetcofTcConFun->[kData,kEffect,kClosure,kData]`kFuns`kDataTcConRead->kRegion`kFun`kEffectTcConHeadRead->kData`kFun`kEffectTcConDeepRead->kData`kFun`kEffectTcConWrite->kRegion`kFun`kEffectTcConDeepWrite->kData`kFun`kEffectTcConAlloc->kRegion`kFun`kEffectTcConDeepAlloc->kData`kFun`kEffectTcConUse->kRegion`kFun`kClosureTcConDeepUse->kData`kFun`kClosure