ghc-9.10.1: The GHC API
Safe HaskellNone
LanguageGHC2021

GHC.Data.TrieMap

Synopsis

Maps over Maybe values

data MaybeMap (m :: Type -> Type) a Source #

Instances

Instances details
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 #

Functor m => Functor (MaybeMap m) Source # 
Instance details

Defined in GHC.Data.TrieMap

Methods

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

(<$) :: a -> MaybeMap m b -> MaybeMap m a #

TrieMap m => Foldable (MaybeMap m) Source # 
Instance details

Defined in GHC.Data.TrieMap

Methods

fold :: Monoid m0 => MaybeMap m m0 -> m0 #

foldMap :: Monoid m0 => (a -> m0) -> MaybeMap m a -> m0 #

foldMap' :: Monoid m0 => (a -> m0) -> MaybeMap m a -> m0 #

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

foldr' :: (a -> b -> b) -> b -> MaybeMap m a -> b #

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

foldl' :: (b -> a -> b) -> b -> MaybeMap m a -> b #

foldr1 :: (a -> a -> a) -> MaybeMap m a -> a #

foldl1 :: (a -> a -> a) -> MaybeMap m a -> a #

toList :: MaybeMap m a -> [a] #

null :: MaybeMap m a -> Bool #

length :: MaybeMap m a -> Int #

elem :: Eq a => a -> MaybeMap m a -> Bool #

maximum :: Ord a => MaybeMap m a -> a #

minimum :: Ord a => MaybeMap m a -> a #

sum :: Num a => MaybeMap m a -> a #

product :: Num a => MaybeMap m a -> a #

type Key (MaybeMap m) Source # 
Instance details

Defined in GHC.Data.TrieMap

type Key (MaybeMap m) = Maybe (Key m)

Maps over List values

data ListMap (m :: Type -> Type) a Source #

Instances

Instances details
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 #

Functor m => Functor (ListMap m) Source # 
Instance details

Defined in GHC.Data.TrieMap

Methods

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

(<$) :: a -> ListMap m b -> ListMap m a #

TrieMap m => Foldable (ListMap m) Source # 
Instance details

Defined in GHC.Data.TrieMap

Methods

fold :: Monoid m0 => ListMap m m0 -> m0 #

foldMap :: Monoid m0 => (a -> m0) -> ListMap m a -> m0 #

foldMap' :: Monoid m0 => (a -> m0) -> ListMap m a -> m0 #

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

foldr' :: (a -> b -> b) -> b -> ListMap m a -> b #

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

foldl' :: (b -> a -> b) -> b -> ListMap m a -> b #

foldr1 :: (a -> a -> a) -> ListMap m a -> a #

foldl1 :: (a -> a -> a) -> ListMap m a -> a #

toList :: ListMap m a -> [a] #

null :: ListMap m a -> Bool #

length :: ListMap m a -> Int #

elem :: Eq a => a -> ListMap m a -> Bool #

maximum :: Ord a => ListMap m a -> a #

minimum :: Ord a => ListMap m a -> a #

sum :: Num a => ListMap m a -> a #

product :: Num a => ListMap m a -> a #

(TrieMap m, Outputable a) => Outputable (ListMap m a) Source # 
Instance details

Defined in GHC.Data.TrieMap

Methods

ppr :: ListMap m a -> SDoc Source #

type Key (ListMap m) Source # 
Instance details

Defined in GHC.Data.TrieMap

type Key (ListMap m) = [Key m]

Maps over Literals

TrieMap class

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

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

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

TrieMap TypeMap Source # 
Instance details

Defined in GHC.Core.Map.Type

Associated Types

type Key TypeMap 
Instance details

Defined in GHC.Core.Map.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 #

foldMapTM :: (TrieMap m, Monoid r) => (a -> r) -> m a -> r Source #

isEmptyTM :: TrieMap m => m a -> Bool Source #

Things helpful for adding additional Instances.

(>.>) :: (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 #

type XT a = Maybe a -> Maybe a Source #

foldMaybe :: (a -> b -> b) -> Maybe a -> b -> b Source #

filterMaybe :: (a -> Bool) -> Maybe a -> Maybe a Source #

Map for leaf compression

data GenMap (m :: Type -> Type) a Source #

Instances

Instances details
(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 #

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

Defined in GHC.Core.Map.Type

Methods

ppr :: TypeMapG a -> SDoc Source #

Functor m => Functor (GenMap m) Source # 
Instance details

Defined in GHC.Data.TrieMap

Methods

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

(<$) :: a -> GenMap m b -> GenMap m a #

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

Defined in GHC.Data.TrieMap

Methods

fold :: Monoid m0 => GenMap m m0 -> m0 #

foldMap :: Monoid m0 => (a -> m0) -> GenMap m a -> m0 #

foldMap' :: Monoid m0 => (a -> m0) -> GenMap m a -> m0 #

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

foldr' :: (a -> b -> b) -> b -> GenMap m a -> b #

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

foldl' :: (b -> a -> b) -> b -> GenMap m a -> b #

foldr1 :: (a -> a -> a) -> GenMap m a -> a #

foldl1 :: (a -> a -> a) -> GenMap m a -> a #

toList :: GenMap m a -> [a] #

null :: GenMap m a -> Bool #

length :: GenMap m a -> Int #

elem :: Eq a => a -> GenMap m a -> Bool #

maximum :: Ord a => GenMap m a -> a #

minimum :: Ord a => GenMap m a -> a #

sum :: Num a => GenMap m a -> a #

product :: Num a => GenMap m a -> a #

(Outputable a, Outputable (m a)) => Outputable (GenMap m a) Source # 
Instance details

Defined in GHC.Data.TrieMap

Methods

ppr :: GenMap m a -> SDoc Source #

type Key (GenMap m) Source # 
Instance details

Defined in GHC.Data.TrieMap

type Key (GenMap m) = Key m

lkG :: forall (m :: Type -> Type) a. (Eq (Key m), TrieMap m) => Key m -> GenMap m a -> Maybe a Source #

xtG :: forall (m :: Type -> Type) a. (Eq (Key m), TrieMap m) => Key m -> XT a -> GenMap m a -> GenMap m a Source #

mapG :: forall (m :: Type -> Type) a b. Functor m => (a -> b) -> GenMap m a -> GenMap m b Source #

fdG :: forall (m :: Type -> Type) a b. TrieMap m => (a -> b -> b) -> GenMap m a -> b -> b Source #

xtList :: TrieMap m => (forall b. k -> XT b -> m b -> m b) -> [k] -> XT a -> ListMap m a -> ListMap m a Source #

lkList :: TrieMap m => (forall b. k -> m b -> Maybe b) -> [k] -> ListMap m a -> Maybe a Source #