ghc-lib-0.20210331: The GHC API, decoupled from GHC versions
Safe HaskellNone
LanguageHaskell2010

GHC.Core.Map.Expr

Synopsis

Maps over Core expressions

data CoreMap a Source #

CoreMap a is a map from CoreExpr to a. If you are a client, this is the type you want.

Instances

Instances details
TrieMap CoreMap Source # 
Instance details

Defined in GHC.Core.Map.Expr

Associated Types

type Key CoreMap #

Methods

emptyTM :: CoreMap a #

lookupTM :: Key CoreMap -> CoreMap b -> Maybe b #

alterTM :: Key CoreMap -> XT b -> CoreMap b -> CoreMap b #

mapTM :: (a -> b) -> CoreMap a -> CoreMap b #

filterTM :: (a -> Bool) -> CoreMap a -> CoreMap a #

foldTM :: (a -> b -> b) -> CoreMap a -> b -> b #

Outputable a => Outputable (CoreMap a) Source # 
Instance details

Defined in GHC.Core.Map.Expr

Methods

ppr :: CoreMap a -> SDoc

type Key CoreMap Source # 
Instance details

Defined in GHC.Core.Map.Expr

type Key CoreMap = CoreExpr

extendCoreMap :: CoreMap a -> CoreExpr -> a -> CoreMap a Source #

lookupCoreMap :: CoreMap a -> CoreExpr -> Maybe a Source #

foldCoreMap :: (a -> b -> b) -> b -> CoreMap a -> b Source #

TrieMap class reexports

class TrieMap (m :: Type -> Type) where #

Associated Types

type Key (m :: Type -> Type) #

Methods

emptyTM :: m a #

lookupTM :: Key m -> m b -> Maybe b #

alterTM :: Key m -> XT b -> m b -> m b #

mapTM :: (a -> b) -> m a -> m b #

filterTM :: (a -> Bool) -> m a -> m a #

foldTM :: (a -> b -> b) -> m a -> b -> b #

Instances

Instances details
TrieMap IntMap 
Instance details

Defined in GHC.Data.TrieMap

Associated Types

type Key IntMap #

Methods

emptyTM :: IntMap a #

lookupTM :: Key IntMap -> IntMap b -> Maybe b #

alterTM :: Key IntMap -> XT b -> IntMap b -> IntMap b #

mapTM :: (a -> b) -> IntMap a -> IntMap b #

filterTM :: (a -> Bool) -> IntMap a -> IntMap a #

foldTM :: (a -> b -> b) -> IntMap a -> b -> b #

TrieMap LabelMap 
Instance details

Defined in GHC.Cmm.Dataflow.Label

Associated Types

type Key LabelMap #

Methods

emptyTM :: LabelMap a #

lookupTM :: Key LabelMap -> LabelMap b -> Maybe b #

alterTM :: Key LabelMap -> XT b -> LabelMap b -> LabelMap b #

mapTM :: (a -> b) -> LabelMap a -> LabelMap b #

filterTM :: (a -> Bool) -> LabelMap a -> LabelMap a #

foldTM :: (a -> b -> b) -> LabelMap a -> b -> b #

TrieMap BndrMap 
Instance details

Defined in GHC.Core.Map.Type

Associated Types

type Key BndrMap #

Methods

emptyTM :: BndrMap a #

lookupTM :: Key BndrMap -> BndrMap b -> Maybe b #

alterTM :: Key BndrMap -> XT b -> BndrMap b -> BndrMap b #

mapTM :: (a -> b) -> BndrMap a -> BndrMap b #

filterTM :: (a -> Bool) -> BndrMap a -> BndrMap a #

foldTM :: (a -> b -> b) -> BndrMap a -> b -> b #

TrieMap LooseTypeMap 
Instance details

Defined in GHC.Core.Map.Type

Associated Types

type Key LooseTypeMap #

Methods

emptyTM :: LooseTypeMap a #

lookupTM :: Key LooseTypeMap -> LooseTypeMap b -> Maybe b #

alterTM :: Key LooseTypeMap -> XT b -> LooseTypeMap b -> LooseTypeMap b #

mapTM :: (a -> b) -> LooseTypeMap a -> LooseTypeMap b #

filterTM :: (a -> Bool) -> LooseTypeMap a -> LooseTypeMap a #

foldTM :: (a -> b -> b) -> LooseTypeMap a -> b -> b #

TrieMap TypeMap 
Instance details

Defined in GHC.Core.Map.Type

Associated Types

type Key TypeMap #

Methods

emptyTM :: TypeMap a #

lookupTM :: Key TypeMap -> TypeMap b -> Maybe b #

alterTM :: Key TypeMap -> XT b -> TypeMap b -> TypeMap b #

mapTM :: (a -> b) -> TypeMap a -> TypeMap b #

filterTM :: (a -> Bool) -> TypeMap a -> TypeMap a #

foldTM :: (a -> b -> b) -> TypeMap a -> b -> b #

TrieMap VarMap 
Instance details

Defined in GHC.Core.Map.Type

Associated Types

type Key VarMap #

Methods

emptyTM :: VarMap a #

lookupTM :: Key VarMap -> VarMap b -> Maybe b #

alterTM :: Key VarMap -> XT b -> VarMap b -> VarMap b #

mapTM :: (a -> b) -> VarMap a -> VarMap b #

filterTM :: (a -> Bool) -> VarMap a -> VarMap a #

foldTM :: (a -> b -> b) -> VarMap a -> b -> b #

TrieMap CoercionMap 
Instance details

Defined in GHC.Core.Map.Type

Associated Types

type Key CoercionMap #

Methods

emptyTM :: CoercionMap a #

lookupTM :: Key CoercionMap -> CoercionMap b -> Maybe b #

alterTM :: Key CoercionMap -> XT b -> CoercionMap b -> CoercionMap b #

mapTM :: (a -> b) -> CoercionMap a -> CoercionMap b #

filterTM :: (a -> Bool) -> CoercionMap a -> CoercionMap a #

foldTM :: (a -> b -> b) -> CoercionMap a -> b -> b #

TrieMap CoercionMapX 
Instance details

Defined in GHC.Core.Map.Type

Associated Types

type Key CoercionMapX #

Methods

emptyTM :: CoercionMapX a #

lookupTM :: Key CoercionMapX -> CoercionMapX b -> Maybe b #

alterTM :: Key CoercionMapX -> XT b -> CoercionMapX b -> CoercionMapX b #

mapTM :: (a -> b) -> CoercionMapX a -> CoercionMapX b #

filterTM :: (a -> Bool) -> CoercionMapX a -> CoercionMapX a #

foldTM :: (a -> b -> b) -> CoercionMapX a -> b -> b #

TrieMap TyLitMap 
Instance details

Defined in GHC.Core.Map.Type

Associated Types

type Key TyLitMap #

Methods

emptyTM :: TyLitMap a #

lookupTM :: Key TyLitMap -> TyLitMap b -> Maybe b #

alterTM :: Key TyLitMap -> XT b -> TyLitMap b -> TyLitMap b #

mapTM :: (a -> b) -> TyLitMap a -> TyLitMap b #

filterTM :: (a -> Bool) -> TyLitMap a -> TyLitMap a #

foldTM :: (a -> b -> b) -> TyLitMap a -> b -> b #

TrieMap TypeMapX 
Instance details

Defined in GHC.Core.Map.Type

Associated Types

type Key TypeMapX #

Methods

emptyTM :: TypeMapX a #

lookupTM :: Key TypeMapX -> TypeMapX b -> Maybe b #

alterTM :: Key TypeMapX -> XT b -> TypeMapX b -> TypeMapX b #

mapTM :: (a -> b) -> TypeMapX a -> TypeMapX b #

filterTM :: (a -> Bool) -> TypeMapX a -> TypeMapX a #

foldTM :: (a -> b -> b) -> TypeMapX a -> b -> b #

TrieMap CoreMap Source # 
Instance details

Defined in GHC.Core.Map.Expr

Associated Types

type Key CoreMap #

Methods

emptyTM :: CoreMap a #

lookupTM :: Key CoreMap -> CoreMap b -> Maybe b #

alterTM :: Key CoreMap -> XT b -> CoreMap b -> CoreMap b #

mapTM :: (a -> b) -> CoreMap a -> CoreMap b #

filterTM :: (a -> Bool) -> CoreMap a -> CoreMap a #

foldTM :: (a -> b -> b) -> CoreMap a -> b -> b #

Ord k => TrieMap (Map k) 
Instance details

Defined in GHC.Data.TrieMap

Associated Types

type Key (Map k) #

Methods

emptyTM :: Map k a #

lookupTM :: Key (Map k) -> Map k b -> Maybe b #

alterTM :: Key (Map k) -> XT b -> Map k b -> Map k b #

mapTM :: (a -> b) -> Map k a -> Map k b #

filterTM :: (a -> Bool) -> Map k a -> Map k a #

foldTM :: (a -> b -> b) -> Map k a -> b -> b #

Uniquable key => TrieMap (UniqDFM key) 
Instance details

Defined in GHC.Data.TrieMap

Associated Types

type Key (UniqDFM key) #

Methods

emptyTM :: UniqDFM key a #

lookupTM :: Key (UniqDFM key) -> UniqDFM key b -> Maybe b #

alterTM :: Key (UniqDFM key) -> XT b -> UniqDFM key b -> UniqDFM key b #

mapTM :: (a -> b) -> UniqDFM key a -> UniqDFM key b #

filterTM :: (a -> Bool) -> UniqDFM key a -> UniqDFM key a #

foldTM :: (a -> b -> b) -> UniqDFM key a -> b -> b #

(Eq (Key m), TrieMap m) => TrieMap (GenMap m) 
Instance details

Defined in GHC.Data.TrieMap

Associated Types

type Key (GenMap m) #

Methods

emptyTM :: GenMap m a #

lookupTM :: Key (GenMap m) -> GenMap m b -> Maybe b #

alterTM :: Key (GenMap m) -> XT b -> GenMap m b -> GenMap m b #

mapTM :: (a -> b) -> GenMap m a -> GenMap m b #

filterTM :: (a -> Bool) -> GenMap m a -> GenMap m a #

foldTM :: (a -> b -> b) -> GenMap m a -> b -> b #

TrieMap m => TrieMap (ListMap m) 
Instance details

Defined in GHC.Data.TrieMap

Associated Types

type Key (ListMap m) #

Methods

emptyTM :: ListMap m a #

lookupTM :: Key (ListMap m) -> ListMap m b -> Maybe b #

alterTM :: Key (ListMap m) -> XT b -> ListMap m b -> ListMap m b #

mapTM :: (a -> b) -> ListMap m a -> ListMap m b #

filterTM :: (a -> Bool) -> ListMap m a -> ListMap m a #

foldTM :: (a -> b -> b) -> ListMap m a -> b -> b #

TrieMap m => TrieMap (MaybeMap m) 
Instance details

Defined in GHC.Data.TrieMap

Associated Types

type Key (MaybeMap m) #

Methods

emptyTM :: MaybeMap m a #

lookupTM :: Key (MaybeMap m) -> MaybeMap m b -> Maybe b #

alterTM :: Key (MaybeMap m) -> XT b -> MaybeMap m b -> MaybeMap m b #

mapTM :: (a -> b) -> MaybeMap m a -> MaybeMap m b #

filterTM :: (a -> Bool) -> MaybeMap m a -> MaybeMap m a #

foldTM :: (a -> b -> b) -> MaybeMap m a -> b -> b #

insertTM :: TrieMap m => Key m -> a -> m a -> m a #

deleteTM :: TrieMap m => Key m -> m a -> m a #

lkDFreeVar :: Var -> DVarEnv a -> Maybe a #

xtDFreeVar :: Var -> XT a -> DVarEnv a -> DVarEnv a #

lkDNamed :: NamedThing n => n -> DNameEnv a -> Maybe a #

xtDNamed :: NamedThing n => n -> XT a -> DNameEnv a -> DNameEnv a #

(>.>) :: (a -> b) -> (b -> c) -> a -> c #

(|>) :: a -> (a -> b) -> b #

(|>>) :: TrieMap m2 => (XT (m2 a) -> m1 (m2 a) -> m1 (m2 a)) -> (m2 a -> m2 a) -> m1 (m2 a) -> m1 (m2 a) #

Orphan instances

Eq (DeBruijn CoreExpr) Source # 
Instance details

Methods

(==) :: DeBruijn CoreExpr -> DeBruijn CoreExpr -> Bool #

(/=) :: DeBruijn CoreExpr -> DeBruijn CoreExpr -> Bool #

Eq (DeBruijn CoreAlt) Source # 
Instance details

Methods

(==) :: DeBruijn CoreAlt -> DeBruijn CoreAlt -> Bool #

(/=) :: DeBruijn CoreAlt -> DeBruijn CoreAlt -> Bool #