Hoogle Search
Within LTS Haskell 24.36 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
isReflCo_maybe :: Coercion -> Maybe (Type, Role)ghc GHC.Core.Coercion Returns the type coerced if this coercion is reflexive. Guaranteed to work very quickly. Sometimes a coercion can be reflexive, but not obviously so. c.f. isReflexiveCo_maybe
isReflexiveCo_maybe :: Coercion -> Maybe (Type, Role)ghc GHC.Core.Coercion Extracts the coerced type from a reflexive coercion. This potentially walks over the entire coercion, so avoid doing this in a loop.
setNominalRole_maybe :: Role -> Coercion -> Maybe CoercionNghc GHC.Core.Coercion Converts a coercion to be nominal, if possible. See Note [Role twiddling functions]
splitAppCo_maybe :: Coercion -> Maybe (Coercion, Coercion)ghc GHC.Core.Coercion Attempt to take a coercion application apart.
splitForAllCo_co_maybe :: Coercion -> Maybe (CoVar, ForAllTyFlag, ForAllTyFlag, Coercion, Coercion)ghc GHC.Core.Coercion Like splitForAllCo_maybe, but only returns Just for covar binder
splitForAllCo_maybe :: Coercion -> Maybe (TyCoVar, ForAllTyFlag, ForAllTyFlag, Coercion, Coercion)ghc GHC.Core.Coercion No documentation available.
splitForAllCo_ty_maybe :: Coercion -> Maybe (TyVar, ForAllTyFlag, ForAllTyFlag, Coercion, Coercion)ghc GHC.Core.Coercion Like splitForAllCo_maybe, but only returns Just for tyvar binder
splitFunCo_maybe :: Coercion -> Maybe (Coercion, Coercion)ghc GHC.Core.Coercion No documentation available.
topNormaliseNewType_maybe :: Type -> Maybe (Coercion, Type)ghc GHC.Core.Coercion Sometimes we want to look through a newtype and get its associated coercion. This function strips off newtype layers enough to reveal something that isn't a newtype. Specifically, here's the invariant:
topNormaliseNewType_maybe rec_nts ty = Just (co, ty')
then (a) co : ty ~R ty'. (b) ty' is not a newtype. The function returns Nothing for non-newtypes, or unsaturated applications This function does *not* look through type families, because it has no access to the type family environment. If you do have that at hand, consider to use topNormaliseType_maybe, which should be a drop-in replacement for topNormaliseNewType_maybe If topNormliseNewType_maybe ty = Just (co, ty'), then co : ty ~R ty'coAxiomSingleBranch_maybe :: forall (br :: BranchFlag) . CoAxiom br -> Maybe CoAxBranchghc GHC.Core.Coercion.Axiom No documentation available.