ghc-8.0.0.20160111: The GHC API

Safe HaskellNone
LanguageHaskell2010

TrieMap

Synopsis

Documentation

data CoreMap a

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

Instances

TrieMap CoreMap 

Associated Types

type Key (CoreMap :: TYPE Lifted -> TYPE Lifted) :: *

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

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

Outputable a => Outputable (CoreMap a) 

Methods

ppr :: CoreMap a -> SDoc

pprPrec :: Rational -> CoreMap a -> SDoc

type Key CoreMap = CoreExpr 

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

data TypeMap a

TypeMap a is a map from Type to a. If you are a client, this is the type you want. The keys in this map may have different kinds.

Instances

TrieMap TypeMap 

Associated Types

type Key (TypeMap :: TYPE Lifted -> TYPE Lifted) :: *

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

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

type Key TypeMap = Type 

extendTypeMap :: TypeMap a -> Type -> a -> TypeMap a

foldTypeMap :: (a -> b -> b) -> b -> TypeMap a -> b

data LooseTypeMap a

A LooseTypeMap doesn't do a kind-check. Thus, when lookup up (t |> g), you'll find entries inserted under (t), even if (g) is non-reflexive.

Instances

TrieMap LooseTypeMap 

Associated Types

type Key (LooseTypeMap :: TYPE Lifted -> TYPE Lifted) :: *

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

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

type Key LooseTypeMap = Type 

data MaybeMap m a

Instances

TrieMap m => TrieMap (MaybeMap m) 

Associated Types

type Key (MaybeMap m :: TYPE Lifted -> TYPE Lifted) :: *

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

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

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

data ListMap m a

Instances

TrieMap m => TrieMap (ListMap m) 

Associated Types

type Key (ListMap m :: TYPE Lifted -> TYPE Lifted) :: *

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

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

type Key (ListMap m) = [Key m] 

class TrieMap m where

Minimal complete definition

emptyTM, lookupTM, alterTM, mapTM, foldTM

Associated Types

type Key m :: *

Methods

emptyTM :: m a

lookupTM :: forall b. Key m -> m b -> Maybe b

alterTM :: forall b. Key m -> XT b -> m b -> m b

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

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

Instances

TrieMap IntMap 

Associated Types

type Key (IntMap :: TYPE Lifted -> TYPE Lifted) :: *

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

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

TrieMap UniqFM 

Associated Types

type Key (UniqFM :: TYPE Lifted -> TYPE Lifted) :: *

Methods

emptyTM :: UniqFM a

lookupTM :: Key UniqFM -> UniqFM b -> Maybe b

alterTM :: Key UniqFM -> XT b -> UniqFM b -> UniqFM b

mapTM :: (a -> b) -> UniqFM a -> UniqFM b

foldTM :: (a -> b -> b) -> UniqFM a -> b -> b

TrieMap LooseTypeMap 

Associated Types

type Key (LooseTypeMap :: TYPE Lifted -> TYPE Lifted) :: *

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

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

TrieMap TypeMap 

Associated Types

type Key (TypeMap :: TYPE Lifted -> TYPE Lifted) :: *

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

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

TrieMap CoreMap 

Associated Types

type Key (CoreMap :: TYPE Lifted -> TYPE Lifted) :: *

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

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

Ord k => TrieMap (Map k) 

Associated Types

type Key (Map k :: TYPE Lifted -> TYPE Lifted) :: *

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

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

TrieMap m => TrieMap (ListMap m) 

Associated Types

type Key (ListMap m :: TYPE Lifted -> TYPE Lifted) :: *

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

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

TrieMap m => TrieMap (MaybeMap m) 

Associated Types

type Key (MaybeMap m :: TYPE Lifted -> TYPE Lifted) :: *

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

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