0 | module Libraries.Data.NameMap.Traversable
4 | import Libraries.Data.NameMap
6 | treeTraverse : (Name -> a -> Core b) -> Tree h a -> Core (Tree h b)
7 | treeTraverse f (Leaf k v) = Leaf k <$> f k v
8 | treeTraverse f (Branch2 l k r) =
9 | (\l', r' => Branch2 l' k r')
10 | <$> treeTraverse f l
11 | <*> treeTraverse f r
12 | treeTraverse f (Branch3 l k1 m k2 r) =
13 | (\l', m', r' => Branch3 l' k1 m' k2 r')
14 | <$> treeTraverse f l
15 | <*> treeTraverse f m
16 | <*> treeTraverse f r
19 | traverseNameMap : (Name -> a -> Core b) -> NameMap a -> Core (NameMap b)
20 | traverseNameMap f Empty = pure Empty
21 | traverseNameMap f (M h t) = M h <$> treeTraverse f t