summaryrefslogtreecommitdiff
path: root/libraries
diff options
context:
space:
mode:
Diffstat (limited to 'libraries')
-rw-r--r--libraries/base/Prelude.hs36
-rw-r--r--libraries/base/changelog.md7
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)