Provide CPP guarded MINIMAL pragmas for GHC 7.8 to get nicer haddocks and compiler...
authorEdward Kmett <ekmett@gmail.com>
Sun, 1 Jun 2014 23:33:54 +0000 (19:33 -0400)
committerEdward Kmett <ekmett@gmail.com>
Sun, 1 Jun 2014 23:33:54 +0000 (19:33 -0400)
Control/Monad/Reader/Class.hs
Control/Monad/State/Class.hs
Control/Monad/Writer/Class.hs

index 97104b5..86276b5 100644 (file)
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE UndecidableInstances #-}
 -- Search for UndecidableInstances to see why this is needed
 {- |
@@ -69,8 +70,12 @@ import Data.Monoid
 -- Note, the partially applied function type @(->) r@ is a simple reader monad.
 -- See the @instance@ declaration below.
 class Monad m => MonadReader r m | m -> r where
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 707
+    {-# MINIMAL (ask | reader), local #-}
+#endif
     -- | Retrieves the monad environment.
     ask   :: m r
+    ask = reader id
 
     -- | Executes a computation in a modified environment.
     local :: (r -> r) -- ^ The function to modify the environment.
index 3034e5f..82f695f 100644 (file)
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE UndecidableInstances #-}
 -- Search for UndecidableInstances to see why this is needed
 
@@ -65,6 +66,9 @@ class Monad m => MonadState s m | m -> s where
       let ~(a, s') = f s
       put s'
       return a
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 707
+    {-# MINIMAL state | get, put #-}
+#endif
 
 -- | Monadic state transformer.
 --
index 760f3f3..702c8a2 100644 (file)
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE UndecidableInstances #-}
 -- Search for UndecidableInstances to see why this is needed
 
@@ -59,6 +60,9 @@ import Data.Monoid
 -- the written object.
 
 class (Monoid w, Monad m) => MonadWriter w m | m -> w where
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 707
+    {-# MINIMAL (writer | tell), listen, pass #-}
+#endif
     -- | @'writer' (a,w)@ embeds a simple writer action.
     writer :: (a,w) -> m a
     writer ~(a, w) = do