Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data NodeMap s f
- data NodeKey s x
- fromOpenMap :: forall f. OpenMap f -> SomeNodeMap f
- generate :: forall s f. IsNodeSet s => (forall x. NodeKey s x -> f x) -> NodeMap s f
- lookup :: NodeMap s f -> NodeKey s v -> f v
- tryLookup :: NodeMap s f -> OpenKey x -> Maybe (NodeKey s x, f x)
- toList :: NodeMap s f -> [KeyAndValue s f]
- toListWith :: forall s f r. (forall x. NodeKey s x -> f x -> r) -> NodeMap s f -> [r]
- elems :: NodeMap s (Const b) -> [b]
- map :: forall s f g. (forall v. f v -> g v) -> NodeMap s f -> NodeMap s g
- mapWithKey :: forall s f g. (forall x. NodeKey s x -> f x -> g x) -> NodeMap s f -> NodeMap s g
- adjust :: forall s f x. (f x -> f x) -> NodeKey s x -> NodeMap s f -> NodeMap s f
- zipWith :: forall s f g h. (forall x. f x -> g x -> h x) -> NodeMap s f -> NodeMap s g -> NodeMap s h
- class IsNodeSet s
- data SomeNodeMap f where
- SomeNodeMap :: IsNodeSet s => NodeMap s f -> SomeNodeMap f
- data KeyAndValue s f = forall x. KeyAndValue (NodeKey s x) (f x)
NodeMap
NodeMap s f
is a map where value of type f x
is associated with key NodeKey s x
.
Type variable s
tracks the set of nodes. Lookups never fail. Maps can
be zipped without losing any nodes.
Construction
fromOpenMap :: forall f. OpenMap f -> SomeNodeMap f Source #
Query
tryLookup :: NodeMap s f -> OpenKey x -> Maybe (NodeKey s x, f x) Source #
If key belongs to s
, tryLookup
will return a proof of this fact
and a corresponding value from the map. Otherwise returns Nothing
.
toList :: NodeMap s f -> [KeyAndValue s f] Source #
toListWith :: forall s f r. (forall x. NodeKey s x -> f x -> r) -> NodeMap s f -> [r] Source #
Modify
mapWithKey :: forall s f g. (forall x. NodeKey s x -> f x -> g x) -> NodeMap s f -> NodeMap s g Source #
zipWith :: forall s f g h. (forall x. f x -> g x -> h x) -> NodeMap s f -> NodeMap s g -> NodeMap s h Source #
Node Set
data SomeNodeMap f where Source #
NodeMap
with existential set of nodes.
SomeNodeMap :: IsNodeSet s => NodeMap s f -> SomeNodeMap f |
data KeyAndValue s f Source #
forall x. KeyAndValue (NodeKey s x) (f x) |