diff options
Diffstat (limited to 'libraries')
| -rw-r--r-- | libraries/base/Prelude.hs | 36 | ||||
| -rw-r--r-- | libraries/base/changelog.md | 7 |
2 files changed, 32 insertions, 11 deletions
diff --git a/libraries/base/Prelude.hs b/libraries/base/Prelude.hs index 854456a3db..fd439b5232 100644 --- a/libraries/base/Prelude.hs +++ b/libraries/base/Prelude.hs @@ -66,14 +66,32 @@ module Prelude ( subtract, even, odd, gcd, lcm, (^), (^^), fromIntegral, realToFrac, + -- ** Monoids + Monoid(mempty, mappend, mconcat), + -- ** Monads and functors Functor(fmap), Applicative(pure, (<*>), (*>), (<*)), Monad((>>=), (>>), return, fail), - mapM, mapM_, sequence, sequence_, (=<<), - - -- ** Traversals and Foldables - Foldable, Traversable, + mapM_, sequence_, (=<<), + + -- ** Folds and traversals + Foldable(elem, -- :: (Foldable t, Eq a) => a -> t a -> Bool + -- fold, -- :: Monoid m => t m -> m + foldMap, -- :: Monoid m => (a -> m) -> t a -> m + foldr, -- :: (a -> b -> b) -> b -> t a -> b + -- foldr', -- :: (a -> b -> b) -> b -> t a -> b + foldl, -- :: (b -> a -> b) -> b -> t a -> b + -- foldl', -- :: (b -> a -> b) -> b -> t a -> b + foldr1, -- :: (a -> a -> a) -> t a -> a + foldl1, -- :: (a -> a -> a) -> t a -> a + maximum, -- :: (Foldable t, Ord a) => t a -> a + minimum, -- :: (Foldable t, Ord a) => t a -> a + product, -- :: (Foldable t, Num a) => t a -> a + sum), -- :: Num a => t a -> a + -- toList) -- :: Foldable t => t a -> [a] + + Traversable(traverse, sequenceA, mapM, sequence), -- ** Miscellaneous functions id, const, (.), flip, ($), until, @@ -84,13 +102,9 @@ module Prelude ( map, (++), filter, head, last, tail, init, null, length, (!!), reverse, - -- ** Reducing lists (folds) - foldl, foldl1, foldr, foldr1, -- *** Special folds and, or, any, all, - sum, product, concat, concatMap, - maximum, minimum, -- ** Building lists -- *** Scans scanl, scanl1, scanr, scanr1, @@ -99,7 +113,7 @@ module Prelude ( -- ** Sublists take, drop, splitAt, takeWhile, dropWhile, span, break, -- ** Searching lists - elem, notElem, lookup, + notElem, lookup, -- ** Zipping and unzipping lists zip, zip3, zipWith, zipWith3, unzip, unzip3, -- ** Functions on strings @@ -143,9 +157,9 @@ import System.IO import System.IO.Error import Data.List import Data.Either -import Data.Foldable ( Foldable ) +import Data.Foldable ( Foldable(..) ) import Data.Maybe -import Data.Traversable ( Traversable ) +import Data.Traversable ( Traversable(..) ) import Data.Tuple import GHC.Base hiding ( foldr, mapM, sequence ) diff --git a/libraries/base/changelog.md b/libraries/base/changelog.md index 0d9589847a..1afcb0edc5 100644 --- a/libraries/base/changelog.md +++ b/libraries/base/changelog.md @@ -29,6 +29,13 @@ * Add `Data.List.uncons` list destructor (#9550) + * Export `Monoid(..)` from `Prelude` + + * Export `Foldable(..)` from `Prelude` + (hiding `fold`, `foldl'`, `foldr'`, and `toList`) + + * Export `Traversable(..)` from `Prelude` + * Set fixity for `Data.Foldable.{elem,notElem}` to match the conventional one set for `Data.List.{elem,notElem}` (#9610) |
