Safe Haskell | None |
---|---|
Language | Haskell2010 |
- 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
- data TypeMap a
- emptyTypeMap :: TypeMap a
- extendTypeMap :: TypeMap a -> Type -> a -> TypeMap a
- lookupTypeMap :: TypeMap a -> Type -> Maybe a
- foldTypeMap :: (a -> b -> b) -> b -> TypeMap a -> b
- data LooseTypeMap a
- data MaybeMap m a
- data ListMap m a
- class TrieMap m where
- insertTM :: TrieMap m => Key m -> a -> m a -> m a
- deleteTM :: TrieMap m => Key m -> m a -> m a
Documentation
CoreMap a
is a map from CoreExpr
to a
. If you are a client, this
is the type you want.
TrieMap CoreMap | |
Outputable a => Outputable (CoreMap a) | |
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
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.
emptyTypeMap :: TypeMap a Source
extendTypeMap :: TypeMap a -> Type -> a -> TypeMap a Source
lookupTypeMap :: TypeMap a -> Type -> Maybe a Source
foldTypeMap :: (a -> b -> b) -> b -> TypeMap a -> b Source
data LooseTypeMap a Source
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.
TrieMap LooseTypeMap | |
type Key LooseTypeMap = Type |