Folds backward over all the nodes of an open-open block and allows
rewriting them. The accumulator is both the block of nodes and
f (usually dataflow facts). Strict in both accumulated parts.
A strict version of foldr. Each application of
the operator is evaluated before using the result in the next
application. This function is strict in the starting value.
Fold the keys and values in the map using the given
right-associative binary operator, such that foldrWithKey f
z == foldr (uncurry f) z . toAscList.
For example,
keys map = foldrWithKey (\k x ks -> k:ks) [] map
let f k a result = result ++ "(" ++ (show k) ++ ":" ++ a ++ ")"
foldrWithKey f "Map: " (fromList [(5,"a"), (3,"b")]) == "Map: (5:a)(3:b)"
A strict version of foldrWithKey. Each
application of the operator is evaluated before using the result in
the next application. This function is strict in the starting value.
A strict version of foldr. Each application of
the operator is evaluated before using the result in the next
application. This function is strict in the starting value.