ghc-lib-parser-9.12.2.20250421: The GHC API, decoupled from GHC versions

Safe Haskell | Ignore
Language | GHC2021

GHC.Core.Map.Expr

Contents

- Maps over Core expressions
- Alpha equality
- `TrieMap` class reexports
- Orphan instances

Synopsis

- data CoreMap a
- emptyCoreMap :: CoreMap a
- extendCoreMap :: CoreMap a -> CoreExpr -> a -> CoreMap a
- lookupCoreMap :: CoreMap a -> CoreExpr -> Maybe a
- foldCoreMap :: (a -> b -> b) -> b -> CoreMap a -> b
- eqDeBruijnExpr :: DeBruijn CoreExpr -> DeBruijn CoreExpr -> Bool
- eqCoreExpr :: CoreExpr -> CoreExpr -> Bool
- class Functor m => TrieMap (m :: Type -> Type) where
  - type Key (m :: Type -> Type)
  - emptyTM :: m a
  - lookupTM :: Key m -> m b -> Maybe b
  - alterTM :: Key m -> XT b -> m b -> m b
  - filterTM :: (a -> Bool) -> m a -> m a
  - foldTM :: (a -> b -> b) -> 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)

# 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

Functor CoreMap Source # |
Instance details Defined in GHC.Core.Map.Expr Methods fmap :: (a -> b) -> CoreMap a -> CoreMap b Source # (<$) :: a -> CoreMap b -> CoreMap a Source #
TrieMap CoreMap Source # |

Instance details

Defined in GHC.Core.Map.Expr

Associated Types

type Key CoreMap |
Instance details Defined in GHC.Core.Map.Expr type Key CoreMap = CoreExpr

Methods

emptyTM :: CoreMap a Source #

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

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

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

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

Outputable a => Outputable (CoreMap a) Source # |
Instance details Defined in GHC.Core.Map.Expr Methods ppr :: CoreMap a -> SDoc Source #
type Key CoreMap Source # |
Instance details Defined in GHC.Core.Map.Expr type Key CoreMap = CoreExpr

emptyCoreMap :: CoreMap a Source #

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

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

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

# Alpha equality

eqDeBruijnExpr :: DeBruijn CoreExpr -> DeBruijn CoreExpr -> Bool Source #

eqCoreExpr :: CoreExpr -> CoreExpr -> Bool Source #

# `TrieMap` class reexports

class Functor m => TrieMap (m :: Type -> Type) where Source #

Associated Types

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

Methods

emptyTM :: m a Source #

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

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

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

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

#### Instances

Instances details

TrieMap IntMap Source # |

Instance details

Defined in GHC.Data.TrieMap

Associated Types

type Key IntMap |
Instance details Defined in GHC.Data.TrieMap type Key IntMap = Int

Methods

emptyTM :: IntMap a Source #

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

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

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

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

TrieMap LabelMap Source # |

Instance details

Defined in GHC.Cmm.Dataflow.Label

Associated Types

type Key LabelMap |
Instance details Defined in GHC.Cmm.Dataflow.Label type Key LabelMap = Label

Methods

emptyTM :: LabelMap a Source #

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

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

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

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

TrieMap CoreMap Source # |

Instance details

Defined in GHC.Core.Map.Expr

Associated Types

type Key CoreMap |
Instance details Defined in GHC.Core.Map.Expr type Key CoreMap = CoreExpr

Methods

emptyTM :: CoreMap a Source #

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

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

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

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

TrieMap BndrMap Source # |

Instance details

Defined in GHC.Core.Map.Type

Associated Types

type Key BndrMap |
Instance details Defined in GHC.Core.Map.Type type Key BndrMap = Var

Methods

emptyTM :: BndrMap a Source #

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

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

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

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

TrieMap LooseTypeMap Source # |

Instance details

Defined in GHC.Core.Map.Type

Associated Types

type Key LooseTypeMap |
Instance details Defined in GHC.Core.Map.Type type Key LooseTypeMap = Type

Methods

emptyTM :: LooseTypeMap a Source #

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

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

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

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

TrieMap TypeMap Source # |

Instance details

Defined in GHC.Core.Map.Type

Associated Types

type Key TypeMap |
Instance details Defined in GHC.Core.Map.Type type Key TypeMap = Type

Methods

emptyTM :: TypeMap a Source #

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

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

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

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

TrieMap VarMap Source # |

Instance details

Defined in GHC.Core.Map.Type

Associated Types

type Key VarMap |
Instance details Defined in GHC.Core.Map.Type type Key VarMap = Var

Methods

emptyTM :: VarMap a Source #

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

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

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

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

Ord k => TrieMap (Map k) Source # |

Instance details

Defined in GHC.Data.TrieMap

Associated Types

type Key (Map k) |
Instance details Defined in GHC.Data.TrieMap type Key (Map k) = k

Methods

emptyTM :: Map k a Source #

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

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

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

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

(Eq (Key m), TrieMap m) => TrieMap (GenMap m) Source # |

Instance details

Defined in GHC.Data.TrieMap

Associated Types

type Key (GenMap m) |
Instance details Defined in GHC.Data.TrieMap type Key (GenMap m) = Key m

Methods

emptyTM :: GenMap m a Source #

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

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

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

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

TrieMap m => TrieMap (ListMap m) Source # |

Instance details

Defined in GHC.Data.TrieMap

Associated Types

type Key (ListMap m) |
Instance details Defined in GHC.Data.TrieMap type Key (ListMap m) = [Key m]

Methods

emptyTM :: ListMap m a Source #

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

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

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

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

TrieMap m => TrieMap (MaybeMap m) Source # |

Instance details

Defined in GHC.Data.TrieMap

Associated Types

type Key (MaybeMap m) |
Instance details Defined in GHC.Data.TrieMap type Key (MaybeMap m) = Maybe (Key m)

Methods

emptyTM :: MaybeMap m a Source #

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

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

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

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

Uniquable key => TrieMap (UniqDFM key) Source # |

Instance details

Defined in GHC.Data.TrieMap

Associated Types

type Key (UniqDFM key) |
Instance details Defined in GHC.Data.TrieMap type Key (UniqDFM key) = key

Methods

emptyTM :: UniqDFM key a Source #

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

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

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

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

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

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

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

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

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

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

(>.>) :: (a -> b) -> (b -> c) -> a -> c infixr 1 Source #

(|>) :: a -> (a -> b) -> b infixr 1 Source #

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

# Orphan instances

Eq (DeBruijn CoreAlt) Source # |
Instance details Methods (==) :: DeBruijn CoreAlt -> DeBruijn CoreAlt -> Bool Source # (/=) :: DeBruijn CoreAlt -> DeBruijn CoreAlt -> Bool Source #
Eq (DeBruijn CoreExpr) Source # |
Instance details Methods (==) :: DeBruijn CoreExpr -> DeBruijn CoreExpr -> Bool Source # (/=) :: DeBruijn CoreExpr -> DeBruijn CoreExpr -> Bool Source #