Allow Data.HashTable construction with user-supplied size
[ghc-base.git] / Data / Monoid.hs
index a0e3b20..b3233ba 100644 (file)
@@ -1,3 +1,4 @@
+{-# OPTIONS_GHC -XNoImplicitPrelude #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Data.Monoid
@@ -30,7 +31,17 @@ module Data.Monoid (
         Last(..)
   ) where
 
+-- Push down the module in the dependency hierarchy.
+#if defined(__GLASGOW_HASKELL__)
+import GHC.Base hiding (Any)
+import GHC.Enum
+import GHC.Num
+import GHC.Read
+import GHC.Show
+import Data.Maybe
+#else
 import Prelude
+#endif
 
 {-
 -- just for testing
@@ -40,7 +51,17 @@ import Test.QuickCheck
 
 -- ---------------------------------------------------------------------------
 -- | The class of monoids (types with an associative binary operation that
--- has an identity).  The method names refer to the monoid of lists,
+-- has an identity).  Instances should satisfy the following laws:
+--
+--  * @mappend mempty x = x@
+--
+--  * @mappend x mempty = x@
+--
+--  * @mappend x (mappend y z) = mappend (mappend x y) z@
+--
+--  * @mconcat = 'foldr' mappend mempty@
+--
+-- The method names refer to the monoid of lists under concatenation,
 -- but there are many other instances.
 --
 -- Minimal complete definition: 'mempty' and 'mappend'.