0 | module Data.SortedMap.Extra
3 | import Data.SortedMap
5 | import public Syntax.IHateParens
10 | mapMaybe : Ord k => (a -> Maybe b) -> SortedMap k a -> SortedMap k b
11 | mapMaybe f = SortedMap.fromList . mapMaybe (\(k, a) => (k,) <$> f a) . SortedMap.toList
14 | mapWithKey : Ord k => (k -> a -> b) -> SortedMap k a -> SortedMap k b
15 | mapWithKey f = fromList . map (\(k, x) => (k, f k x)) . SortedMap.toList
17 | public export %inline
18 | mapWithKey' : Ord k => SortedMap k a -> (k -> a -> b) -> SortedMap k b
19 | mapWithKey' = flip mapWithKey
26 | mapAsList : (f : v -> w) -> (m : SortedMap k v) -> (map f m).asList === map (mapSnd f) m.asList
27 | mapAsList f m = believe_me $
Refl {x=Z}
30 | mapSize : (f : v -> w) -> (m : SortedMap k v) -> (map f m).size = m.size
31 | mapSize f m = rewrite mapAsList f m in lengthMap _
34 | keySetSize : (m : SortedMap k v) -> (keySet m).size = m.size
35 | keySetSize m = believe_me $
Refl {x=Z}
38 | keysThruAsList : (m : SortedMap k v) -> keys m === (Builtin.fst <$> m.asList)
39 | keysThruAsList m = believe_me $
Refl {x=Z}