summaryrefslogtreecommitdiff
path: root/prelude
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2015-10-14 09:09:10 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2015-10-14 09:09:10 -0700
commit82b3e0ab97a67188f0886dd6b758aa8d0ccd1064 (patch)
tree97ba94d90547b6e143031f35ae4c2bba294fe214 /prelude
parent198862ee40702c8844e4d0503329b69a3062c49b (diff)
Use custom Prelude to avoid compiler warnings.
- The (non-exported) prelude is in prelude/Prelude.hs. - It exports Monoid and Applicative, like base 4.8 prelude, but works with older base versions. - It exports (<>) for mappend. - It hides 'catch' on older base versions. This allows us to remove many imports of Data.Monoid and Control.Applicative, and remove Text.Pandoc.Compat.Monoid. It should allow us to use -Wall again for ghc 7.10.
Diffstat (limited to 'prelude')
-rw-r--r--prelude/Prelude.hs39
1 files changed, 39 insertions, 0 deletions
diff --git a/prelude/Prelude.hs b/prelude/Prelude.hs
new file mode 100644
index 000000000..ca5c687ea
--- /dev/null
+++ b/prelude/Prelude.hs
@@ -0,0 +1,39 @@
+{-# LANGUAGE PackageImports #-}
+{-# LANGUAGE CPP #-}
+
+module Prelude
+(
+ module P
+, Monoid(..)
+, Applicative(..)
+#if MIN_VERSION_base(4,8,0)
+#else
+, (<$>)
+, (<$)
+#endif
+, (<>)
+)
+where
+
+#if MIN_VERSION_base(4,8,0)
+import "base" Prelude as P
+import Data.Monoid ((<>))
+#elif MIN_VERSION_base(4,6,0)
+import "base" Prelude as P
+import Control.Applicative
+import Data.Monoid
+#else
+import "base" Prelude as P hiding (catch)
+import Control.Applicative
+import Data.Monoid
+#endif
+
+#if MIN_VERSION_base(4,5,0)
+#else
+infixr 6 <>
+
+-- | An infix synonym for 'mappend'.
+(<>) :: Monoid m => m -> m -> m
+(<>) = mappend
+{-# INLINE (<>) #-}
+#endif