on master help sign in
Merge pull request #1054 from puffnfresh/map-set-ord-constraints

Remove Ord constraints from SortedMap toList

commit83b6156ed662bd2bbfad4f3284dd3c66d027786c authorEdwin Brady <edwin.brady@gmail.com> dateThu 17 Apr 2014, 11:45 (13 years ago) parent0b37d3fbe534de
2 files changed+7−4
libs/base/Data/SortedMap.idr+3−3 libs/base/Data/SortedSet.idr+4−1
libs/base/Data/SortedMap.idr+3−3
@@ -183,10 +183,10 @@ treeDelete {n=(S (S _))} k (Branch3 t1 k1 t2 k2 t3) =
183183 Left t3' => Left (Branch3 t1 k1 t2 k2 t3')
184184 Right t3' => Left (merge3 t1 k1 t2 k2 t3')
185185
186−treeToList : Ord k => Tree n k v -> List (k, v)
186+treeToList : Tree n k v -> List (k, v)
187187treeToList = treeToList' (:: [])
188188 where
189− treeToList' : Ord k => ((k, v) -> List (k, v)) -> Tree n k v -> List (k, v)
189+ treeToList' : ((k, v) -> List (k, v)) -> Tree n k v -> List (k, v)
190190 treeToList' cont (Leaf k v) = cont (k, v)
191191 treeToList' cont (Branch2 t1 _ t2) = treeToList' (:: treeToList' cont t2) t1
192192 treeToList' cont (Branch3 t1 _ t2 _ t3) = treeToList' (:: treeToList' (:: treeToList' cont t3) t2) t1
@@ -223,7 +223,7 @@ delete k (M (S _) t) =
223223fromList : Ord k => List (k, v) -> SortedMap k v
224224fromList l = foldl (flip (uncurry insert)) empty l
225225
226−toList : Ord k => SortedMap k v -> List (k, v)
226+toList : SortedMap k v -> List (k, v)
227227toList Empty = []
228228toList (M _ t) = treeToList t
229229
libs/base/Data/SortedSet.idr+4−1
@@ -21,5 +21,8 @@ contains k (SetWrapper m) = isJust (Data.SortedMap.lookup k m)
2121fromList : Ord k => List k -> SortedSet k
2222fromList l = SetWrapper (Data.SortedMap.fromList (map (\i => (i, ())) l))
2323
24−toList : Ord k => SortedSet k -> List k
24+toList : SortedSet k -> List k
2525toList (SetWrapper m) = map (\(i, _) => i) (Data.SortedMap.toList m)
26+
27+instance Foldable SortedSet where
28+ foldr f e xs = foldr f e (Data.SortedSet.toList xs)