summaryrefslogtreecommitdiff
path: root/compiler/utils
diff options
context:
space:
mode:
authorHerbert Valerio Riedel <hvr@gnu.org>2014-09-21 23:22:19 +0200
committerHerbert Valerio Riedel <hvr@gnu.org>2014-09-21 23:28:31 +0200
commitb8f583928fa6cb5371a872fc73080d2002dd87d9 (patch)
tree9982e3cc06cec45a30e956cffbe4a6151a897cc8 /compiler/utils
parent1f7f46f94a95ab7fc6f3101da7c02529e1964f24 (diff)
downloadhaskell-b8f583928fa6cb5371a872fc73080d2002dd87d9.tar.gz
Export `Monoid(..)`/`Foldable(..)`/`Traversable(..)` from Prelude
This finally exposes also the methods of these 3 classes in the Prelude in order to allow to define basic class instances w/o needing imports. This almost completes the primary goal of #9586 NOTE: `fold`, `foldl'`, `foldr'`, and `toList` are not exposed yet, as they require upstream fixes for at least `containers` and `bytestring`, and are not required for defining basic instances. Reviewed By: ekmett, austin Differential Revision: https://phabricator.haskell.org/D236
Diffstat (limited to 'compiler/utils')
-rw-r--r--compiler/utils/Pair.lhs6
-rw-r--r--compiler/utils/UniqFM.lhs7
2 files changed, 10 insertions, 3 deletions
diff --git a/compiler/utils/Pair.lhs b/compiler/utils/Pair.lhs
index ca7c2a7f8e..529ba669ea 100644
--- a/compiler/utils/Pair.lhs
+++ b/compiler/utils/Pair.lhs
@@ -10,10 +10,12 @@ module Pair ( Pair(..), unPair, toPair, swap ) where
#include "HsVersions.h"
import Outputable
-import Data.Monoid
import Control.Applicative
+#if __GLASGOW_HASKELL__ < 709
import Data.Foldable
+import Data.Monoid
import Data.Traversable
+#endif
data Pair a = Pair { pFst :: a, pSnd :: a }
-- Note that Pair is a *unary* type constructor
@@ -46,4 +48,4 @@ toPair (x,y) = Pair x y
swap :: Pair a -> Pair a
swap (Pair x y) = Pair y x
-\end{code} \ No newline at end of file
+\end{code}
diff --git a/compiler/utils/UniqFM.lhs b/compiler/utils/UniqFM.lhs
index d8e08f599a..c941ce8884 100644
--- a/compiler/utils/UniqFM.lhs
+++ b/compiler/utils/UniqFM.lhs
@@ -20,7 +20,10 @@ and ``addToUFM\_C'' and ``Data.IntMap.insertWith'' differ in the order
of arguments of combining function.
\begin{code}
-{-# LANGUAGE DeriveTraversable, DeriveDataTypeable, GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveTraversable #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# OPTIONS_GHC -Wall #-}
module UniqFM (
@@ -76,7 +79,9 @@ import qualified Data.Foldable as Foldable
import qualified Data.Traversable as Traversable
import Data.Typeable
import Data.Data
+#if __GLASGOW_HASKELL__ < 709
import Data.Monoid
+#endif
\end{code}
%************************************************************************