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.

  1. 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

  2. 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.

  3. setNominalRole_maybe :: Role -> Coercion -> Maybe CoercionN

    ghc GHC.Core.Coercion

    Converts a coercion to be nominal, if possible. See Note [Role twiddling functions]

  4. splitAppCo_maybe :: Coercion -> Maybe (Coercion, Coercion)

    ghc GHC.Core.Coercion

    Attempt to take a coercion application apart.

  5. splitForAllCo_co_maybe :: Coercion -> Maybe (CoVar, ForAllTyFlag, ForAllTyFlag, Coercion, Coercion)

    ghc GHC.Core.Coercion

    Like splitForAllCo_maybe, but only returns Just for covar binder

  6. splitForAllCo_maybe :: Coercion -> Maybe (TyCoVar, ForAllTyFlag, ForAllTyFlag, Coercion, Coercion)

    ghc GHC.Core.Coercion

    No documentation available.

  7. splitForAllCo_ty_maybe :: Coercion -> Maybe (TyVar, ForAllTyFlag, ForAllTyFlag, Coercion, Coercion)

    ghc GHC.Core.Coercion

    Like splitForAllCo_maybe, but only returns Just for tyvar binder

  8. splitFunCo_maybe :: Coercion -> Maybe (Coercion, Coercion)

    ghc GHC.Core.Coercion

    No documentation available.

  9. 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'

  10. coAxiomSingleBranch_maybe :: forall (br :: BranchFlag) . CoAxiom br -> Maybe CoAxBranch

    ghc GHC.Core.Coercion.Axiom

    No documentation available.

Page 118 of many | Previous | Next