diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+4.2.5
+-------
+* Added a `MINIMAL` pragma to `Comonad`.
+
 4.2.4
 -----
 * Added Kenneth Foner's fixed point as `kfix`.
diff --git a/comonad.cabal b/comonad.cabal
--- a/comonad.cabal
+++ b/comonad.cabal
@@ -1,6 +1,6 @@
 name:          comonad
 category:      Control, Comonads
-version:       4.2.4
+version:       4.2.5
 license:       BSD3
 cabal-version: >= 1.10
 license-file:  LICENSE
diff --git a/src/Control/Comonad.hs b/src/Control/Comonad.hs
--- a/src/Control/Comonad.hs
+++ b/src/Control/Comonad.hs
@@ -1,10 +1,8 @@
 {-# LANGUAGE CPP #-}
-#ifdef __GLASGOW_HASKELL__
 #if __GLASGOW_HASKELL__ >= 707
-{-# LANGUAGE DeriveDataTypeable, StandaloneDeriving, Safe #-}
+{-# LANGUAGE DeriveDataTypeable, StandaloneDeriving, Safe, DefaultSignatures #-}
 #elif __GLASGOW_HASKELL__ >= 702
-{-# LANGUAGE Trustworthy #-}
-#endif
+{-# LANGUAGE Trustworthy, DefaultSignatures #-}
 #endif
  -----------------------------------------------------------------------------
 -- |
@@ -143,7 +141,11 @@
   extend :: (w a -> b) -> w a -> w b
   extend f = fmap f . duplicate
 
+#if __GLASGOW_HASKELL__ >= 708
+  {-# MINIMAL extract, (duplicate | extend) #-}
+#endif
 
+
 instance Comonad ((,)e) where
   duplicate p = (fst p, p)
   {-# INLINE duplicate #-}
@@ -228,6 +230,10 @@
 
 class Comonad w => ComonadApply w where
   (<@>) :: w (a -> b) -> w a -> w b
+#if __GLASGOW_HASKELL__ >= 702
+  default (<@>) :: Applicative w => w (a -> b) -> w a -> w b
+  (<@>) = (<*>)
+#endif
 
   (@>) :: w a -> w b -> w b
   a @> b = const id <$> a <@> b
