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 # | |
emptyCoreMap :: CoreMap 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 #
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 # | |