diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2012-2015 Simon Hengel <sol@typeful.net>
+Copyright (c) 2012-2015 Simon Hengel <sol@typeful.net> and Ryan Scott <ryan.gl.scott@ku.edu>
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/base-compat.cabal b/base-compat.cabal
--- a/base-compat.cabal
+++ b/base-compat.cabal
@@ -1,9 +1,10 @@
 name:             base-compat
-version:          0.7.0
+version:          0.7.1
 license:          MIT
 license-file:     LICENSE
 copyright:        (c) 2012-2015 Simon Hengel,
-                  (c) 2014 João Cristóvão
+                  (c) 2014 João Cristóvão,
+                  (c) 2015 Ryan Scott
 author:           Simon Hengel <sol@typeful.net>, João Cristóvão <jmacristovao@gmail.com>
 maintainer:       Simon Hengel <sol@typeful.net>, João Cristóvão <jmacristovao@gmail.com>
 build-type:       Simple
diff --git a/src/Control/Applicative/Compat.hs b/src/Control/Applicative/Compat.hs
--- a/src/Control/Applicative/Compat.hs
+++ b/src/Control/Applicative/Compat.hs
@@ -2,8 +2,12 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 module Control.Applicative.Compat (
   module Base
+, Applicative(..)
+, Alternative(..)
 , Const(..)
 , WrappedMonad(..)
+, WrappedArrow(..)
+, ZipList(..)
 ) where
 import Control.Applicative as Base
 
diff --git a/src/Control/Exception/Compat.hs b/src/Control/Exception/Compat.hs
--- a/src/Control/Exception/Compat.hs
+++ b/src/Control/Exception/Compat.hs
@@ -2,6 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 module Control.Exception.Compat (
   module Base
+, ErrorCall(..)
 ) where
 
 import Control.Exception as Base
diff --git a/src/Control/Monad/Compat.hs b/src/Control/Monad/Compat.hs
--- a/src/Control/Monad/Compat.hs
+++ b/src/Control/Monad/Compat.hs
@@ -1,5 +1,7 @@
 module Control.Monad.Compat (
   module Base
+, Monad(..)
+, MonadPlus(..)
 , void
 , (<$!>)
 ) where
diff --git a/src/Data/Bits/Compat.hs b/src/Data/Bits/Compat.hs
--- a/src/Data/Bits/Compat.hs
+++ b/src/Data/Bits/Compat.hs
@@ -1,6 +1,7 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 module Data.Bits.Compat (
   module Base
+, Bits(..)
 ) where
 import Data.Bits as Base
 
diff --git a/src/Data/Functor/Compat.hs b/src/Data/Functor/Compat.hs
--- a/src/Data/Functor/Compat.hs
+++ b/src/Data/Functor/Compat.hs
@@ -1,5 +1,6 @@
 module Data.Functor.Compat (
   module Base
+, Functor(..)
 , ($>)
 , void
 ) where
diff --git a/src/Data/Monoid/Compat.hs b/src/Data/Monoid/Compat.hs
--- a/src/Data/Monoid/Compat.hs
+++ b/src/Data/Monoid/Compat.hs
@@ -1,4 +1,13 @@
 {-# LANGUAGE GeneralizedNewtypeDeriving, StandaloneDeriving #-}
+
+#if __GLASGOW_HASKELL__ >= 702
+{-# LANGUAGE DeriveGeneric #-}
+#endif
+
+#if __GLASGOW_HASKELL__ >= 706
+{-# LANGUAGE PolyKinds #-}
+#endif
+
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 module Data.Monoid.Compat (
         -- * Monoid typeclass
@@ -15,14 +24,24 @@
         -- * Maybe wrappers
         -- $MaybeExamples
         First(..),
-        Last(..)
+        Last(..),
+        -- * Alternative wrapper
+        Alt(..)
   ) where
 
 import Data.Monoid as Base
 
-#if !MIN_VERSION_base(4,7,0)
+-- To import orphan Generic instances for Sum and Product
 import GHC.Generics.Compat ()
-import Prelude.Compat (Num)
+
+#if !MIN_VERSION_base(4,8,0)
+import Control.Applicative
+import Control.Monad
+import Prelude.Compat
+
+# if __GLASGOW_HASKELL__ >= 702
+import GHC.Generics
+# endif
 #endif
 
 #if !MIN_VERSION_base(4,5,0)
@@ -39,4 +58,31 @@
 #if !MIN_VERSION_base(4,7,0)
 deriving instance Num a => Num (Sum a)
 deriving instance Num a => Num (Product a)
+#endif
+
+#if !MIN_VERSION_base(4,8,0)
+-- | Monoid under '<|>'.
+--
+-- /Since: 4.8.0.0/
+newtype Alt f a = Alt {getAlt :: f a}
+  deriving ( Read, Show, Eq, Ord, Num, Enum
+# if __GLASGOW_HASKELL__ >= 702
+           , Generic
+# endif
+# if __GLASGOW_HASKELL__ >= 708
+           , Generic1
+# endif
+           )
+
+-- To work around a GHC 7.6 bug, we'll use StandaloneDeriving for generalized
+-- derivations that involve higher-kinded typeclasses.
+deriving instance Functor f => Functor (Alt f)
+deriving instance Applicative f => Applicative (Alt f)
+deriving instance Monad m => Monad (Alt m)
+deriving instance Alternative f => Alternative (Alt f)
+deriving instance MonadPlus m => MonadPlus (Alt m)
+
+instance Alternative f => Monoid (Alt f a) where
+    mempty = Alt empty
+    mappend (Alt x) (Alt y) = Alt (x <|> y)
 #endif
diff --git a/src/Data/Ord/Compat.hs b/src/Data/Ord/Compat.hs
--- a/src/Data/Ord/Compat.hs
+++ b/src/Data/Ord/Compat.hs
@@ -2,12 +2,21 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 module Data.Ord.Compat (
   module Base
+, Ord(..)
+, Down(..)
 ) where
 import Data.Ord as Base
 
-#if MIN_VERSION_base(4,6,0) && !MIN_VERSION_base(4,7,0)
+#if !MIN_VERSION_base(4,7,0)
 import Prelude.Compat
+#endif
 
+#if MIN_VERSION_base(4,6,0) && !MIN_VERSION_base(4,7,0)
 deriving instance Read a => Read (Down a)
 deriving instance Show a => Show (Down a)
+#elif !MIN_VERSION_base(4,6,0)
+newtype Down a = Down a deriving (Eq, Show, Read)
+
+instance Ord a => Ord (Down a) where
+    compare (Down x) (Down y) = y `compare` x
 #endif
diff --git a/src/Data/Version/Compat.hs b/src/Data/Version/Compat.hs
--- a/src/Data/Version/Compat.hs
+++ b/src/Data/Version/Compat.hs
@@ -2,6 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 module Data.Version.Compat (
   module Base
+, Version(..)
 , makeVersion
 ) where
 import Data.Version as Base
diff --git a/src/GHC/Generics/Compat.hs b/src/GHC/Generics/Compat.hs
--- a/src/GHC/Generics/Compat.hs
+++ b/src/GHC/Generics/Compat.hs
@@ -11,6 +11,18 @@
 ) where
 #else
   module Base
+  -- * Generic representation types
+, U1(..)
+, Par1(..)
+, Rec1(..)
+, K1(..)
+, M1(..)
+, (:+:)(..)
+, (:*:)(..)
+, (:.:)(..)
+  -- * Generic type classes
+, Generic(..)
+, Generic1(..)
 ) where
 import           GHC.Generics as Base
 
diff --git a/src/System/Console/GetOpt/Compat.hs b/src/System/Console/GetOpt/Compat.hs
--- a/src/System/Console/GetOpt/Compat.hs
+++ b/src/System/Console/GetOpt/Compat.hs
@@ -1,6 +1,9 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 module System.Console.GetOpt.Compat (
   module Base
+, ArgOrder(..)
+, OptDescr(..)
+, ArgDescr(..)
 ) where
 import System.Console.GetOpt as Base
 
