packages feed

mono-traversable 0.4.0.4 → 0.5.0

raw patch · 3 files changed

+37/−37 lines, 3 files

Files

mono-traversable.cabal view
@@ -1,5 +1,5 @@ name:                mono-traversable-version:             0.4.0.4+version:             0.5.0 synopsis:            Type classes for mapping, folding, and traversing monomorphic containers description:         Monomorphic variants of the Functor, Foldable, and Traversable typeclasses. Contains even more experimental code for abstracting containers and sequences. homepage:            https://github.com/snoyberg/mono-traversable
src/Data/MinLen.hs view
@@ -196,7 +196,7 @@ {-# INLINE minimum #-}  -- | like Data.List, but not partial on a MonoFoldable-maximumBy :: MonoFoldableOrd mono+maximumBy :: MonoFoldable mono           => (Element mono -> Element mono -> Ordering)           -> MinLen (Succ nat) mono           -> Element mono@@ -204,7 +204,7 @@ {-# INLINE maximumBy #-}  -- | like Data.List, but not partial on a MonoFoldable-minimumBy :: MonoFoldableOrd mono+minimumBy :: MonoFoldable mono           => (Element mono -> Element mono -> Ordering)           -> MinLen (Succ nat) mono           -> Element mono
src/Data/MonoTraversable.hs view
@@ -311,6 +311,26 @@     unsafeLast = lastEx     {-# INLINE unsafeLast #-} +    maximumByEx :: (Element mono -> Element mono -> Ordering) -> mono -> Element mono+    maximumByEx f =+        ofoldl1Ex' go+      where+        go x y =+            case f x y of+                LT -> y+                _  -> x+    {-# INLINE maximumByEx #-}++    minimumByEx :: (Element mono -> Element mono -> Ordering) -> mono -> Element mono+    minimumByEx f =+        ofoldl1Ex' go+      where+        go x y =+            case f x y of+                GT -> y+                _  -> x+    {-# INLINE minimumByEx #-}+ instance MonoFoldable S.ByteString where     ofoldMap f = ofoldr (mappend . f) mempty     ofoldr = S.foldr@@ -489,6 +509,8 @@     lastEx = V.last     unsafeHead = V.unsafeHead     unsafeLast = V.unsafeLast+    maximumByEx = V.maximumBy+    minimumByEx = V.minimumBy     {-# INLINE ofoldMap #-}     {-# INLINE ofoldr #-}     {-# INLINE ofoldl' #-}@@ -503,6 +525,8 @@     {-# INLINE headEx #-}     {-# INLINE lastEx #-}     {-# INLINE unsafeHead #-}+    {-# INLINE maximumByEx #-}+    {-# INLINE minimumByEx #-} instance MonoFoldable (Set e) instance MonoFoldable (HashSet e) instance MonoFoldable (DList a) where@@ -526,6 +550,8 @@     lastEx = U.last     unsafeHead = U.unsafeHead     unsafeLast = U.unsafeLast+    maximumByEx = U.maximumBy+    minimumByEx = U.minimumBy     {-# INLINE ofoldMap #-}     {-# INLINE ofoldr #-}     {-# INLINE ofoldl' #-}@@ -540,6 +566,8 @@     {-# INLINE headEx #-}     {-# INLINE lastEx #-}     {-# INLINE unsafeHead #-}+    {-# INLINE maximumByEx #-}+    {-# INLINE minimumByEx #-} instance VS.Storable a => MonoFoldable (VS.Vector a) where     ofoldMap f = ofoldr (mappend . f) mempty     ofoldr = VS.foldr@@ -555,6 +583,8 @@     lastEx = VS.last     unsafeHead = VS.unsafeHead     unsafeLast = VS.unsafeLast+    maximumByEx = VS.maximumBy+    minimumByEx = VS.minimumBy     {-# INLINE ofoldMap #-}     {-# INLINE ofoldr #-}     {-# INLINE ofoldl' #-}@@ -569,6 +599,8 @@     {-# INLINE headEx #-}     {-# INLINE lastEx #-}     {-# INLINE unsafeHead #-}+    {-# INLINE maximumByEx #-}+    {-# INLINE minimumByEx #-} instance MonoFoldable (Either a b) where     ofoldMap f = ofoldr (mappend . f) mempty     ofoldr f b (Right a) = f a b@@ -653,30 +685,10 @@     maximumEx = maximumByEx compare     {-# INLINE maximumEx #-} -    maximumByEx :: (Element mono -> Element mono -> Ordering) -> mono -> Element mono-    maximumByEx f =-        ofoldl1Ex' go-      where-        go x y =-            case f x y of-                LT -> y-                _  -> x-    {-# INLINE maximumByEx #-}-     minimumEx :: mono -> Element mono     minimumEx = minimumByEx compare     {-# INLINE minimumEx #-} -    minimumByEx :: (Element mono -> Element mono -> Ordering) -> mono -> Element mono-    minimumByEx f =-        ofoldl1Ex' go-      where-        go x y =-            case f x y of-                GT -> y-                _  -> x-    {-# INLINE minimumByEx #-}- instance MonoFoldableOrd S.ByteString where     maximumEx = S.maximum     {-# INLINE maximumEx #-}@@ -712,33 +724,21 @@ instance Ord v => MonoFoldableOrd (HashMap k v) instance Ord a => MonoFoldableOrd (Vector a) where     maximumEx   = V.maximum-    maximumByEx = V.maximumBy     minimumEx   = V.minimum-    minimumByEx = V.minimumBy     {-# INLINE maximumEx #-}-    {-# INLINE maximumByEx #-}     {-# INLINE minimumEx #-}-    {-# INLINE minimumByEx #-} instance Ord e => MonoFoldableOrd (Set e) instance Ord e => MonoFoldableOrd (HashSet e) instance (U.Unbox a, Ord a) => MonoFoldableOrd (U.Vector a) where     maximumEx   = U.maximum-    maximumByEx = U.maximumBy     minimumEx   = U.minimum-    minimumByEx = U.minimumBy     {-# INLINE maximumEx #-}-    {-# INLINE maximumByEx #-}     {-# INLINE minimumEx #-}-    {-# INLINE minimumByEx #-} instance (Ord a, VS.Storable a) => MonoFoldableOrd (VS.Vector a) where     maximumEx   = VS.maximum-    maximumByEx = VS.maximumBy     minimumEx   = VS.minimum-    minimumByEx = VS.minimumBy     {-# INLINE maximumEx #-}-    {-# INLINE maximumByEx #-}     {-# INLINE minimumEx #-}-    {-# INLINE minimumByEx #-} instance Ord b => MonoFoldableOrd (Either a b) where  maximumMay :: MonoFoldableOrd mono => mono -> Maybe (Element mono)@@ -747,7 +747,7 @@     | otherwise = Just (maximumEx mono) {-# INLINE maximumMay #-} -maximumByMay :: MonoFoldableOrd mono+maximumByMay :: MonoFoldable mono              => (Element mono -> Element mono -> Ordering)              -> mono              -> Maybe (Element mono)@@ -762,7 +762,7 @@     | otherwise = Just (minimumEx mono) {-# INLINE minimumMay #-} -minimumByMay :: MonoFoldableOrd mono+minimumByMay :: MonoFoldable mono              => (Element mono -> Element mono -> Ordering)              -> mono              -> Maybe (Element mono)