Document traversal order for sets and maps
authorDavid Feuer <David.Feuer@gmail.com>
Fri, 12 Apr 2019 18:22:09 +0000 (14:22 -0400)
committerDavid Feuer <David.Feuer@gmail.com>
Fri, 12 Apr 2019 18:25:13 +0000 (14:25 -0400)
* Document that the `Foldable` instances for `IntMap`, `Map`, and
  `Set` fold in order of increasing key.

* Document that the `Traversable` instances for `IntMap` and `Map`
  traverse in order of increasing key.

Closes #535

[skip ci]

Data/IntMap/Internal.hs
Data/Map/Internal.hs
Data/Set/Internal.hs

index 1177b94..f275376 100644 (file)
@@ -438,6 +438,7 @@ instance Semigroup (IntMap a) where
     stimes  = stimesIdempotentMonoid
 #endif
 
+-- | Folds in order of increasing key.
 instance Foldable.Foldable IntMap where
   fold = go
     where go Nil = mempty
@@ -497,6 +498,7 @@ instance Foldable.Foldable IntMap where
   {-# INLINABLE product #-}
 #endif
 
+-- | Traverses in order of increasing key.
 instance Traversable IntMap where
     traverse f = traverseWithKey (\_ -> f)
     {-# INLINE traverse #-}
index bb03a00..994d929 100644 (file)
@@ -4166,10 +4166,12 @@ instance Functor (Map k) where
   a <$ (Bin sx kx _ l r) = Bin sx kx a (a <$ l) (a <$ r)
 #endif
 
+-- | Traverses in order of increasing key.
 instance Traversable (Map k) where
   traverse f = traverseWithKey (\_ -> f)
   {-# INLINE traverse #-}
 
+-- | Folds in order of increasing key.
 instance Foldable.Foldable (Map k) where
   fold = go
     where go Tip = mempty
index 9c4c932..c6ce3f2 100644 (file)
@@ -308,6 +308,7 @@ instance Ord a => Semigroup (Set a) where
 #endif
 
 
+-- | Folds in order of increasing key.
 instance Foldable.Foldable Set where
     fold = go
       where go Tip = mempty