diff --git a/Data/Proxy.hs b/Data/Proxy.hs
--- a/Data/Proxy.hs
+++ b/Data/Proxy.hs
@@ -25,10 +25,12 @@
 import Control.Applicative (Applicative(..))
 import Data.Traversable (Traversable(..))
 import Data.Foldable (Foldable(..))
+#ifdef LANGUAGE_DeriveDataTypeable
 import Data.Data (Data,Typeable)
+#endif
 import Data.Ix (Ix(..))
 import Data.Tagged
-import Data.Semigroup
+import Data.Monoid
 #ifdef __GLASGOW_HASKELL__
 import GHC.Arr (unsafeIndex, unsafeRangeSize)
 #endif
@@ -50,9 +52,6 @@
     enumFromThen _ _ = [Proxy]
     enumFromThenTo _ _ _ = [Proxy]
     enumFromTo _ _ = [Proxy]
-
-instance Semigroup (Proxy s) where
-    _ <> _ = Proxy
 
 {- 
 Work around for the following GHC bug with deriving Ix instances with a phantom type:
diff --git a/Data/Tagged.hs b/Data/Tagged.hs
--- a/Data/Tagged.hs
+++ b/Data/Tagged.hs
@@ -26,10 +26,11 @@
 import Control.Monad (liftM)
 import Data.Traversable (Traversable(..))
 import Data.Foldable (Foldable(..))
+#ifdef LANGUAGE_DeriveDataTypeable
 import Data.Data (Data,Typeable)
+#endif
 import Data.Ix (Ix(..))
 import Text.Read
-import Data.Semigroup
 
 -- | A @'Tagged' s b@ value is a value @b@ with an attached phantom type @s@.
 -- This can be used in place of the more traditional but less safe idiom of
@@ -50,9 +51,6 @@
     showsPrec n (Tagged b) = showParen (n > 10) $
         showString "Tagged " .
         showsPrec 11 b
-
-instance Semigroup a => Semigroup (Tagged s a) where
-    Tagged a <> Tagged b = Tagged (a <> b)
 
 instance Read b => Read (Tagged s b) where
     readPrec = parens $ prec 10 $ do
diff --git a/tagged.cabal b/tagged.cabal
--- a/tagged.cabal
+++ b/tagged.cabal
@@ -1,5 +1,5 @@
 name:           tagged
-version:        0.3
+version:        0.4
 license:        BSD3
 license-file:   LICENSE
 author:         Edward A. Kmett
@@ -21,9 +21,7 @@
   if !impl(hugs)
     cpp-options: -DLANGUAGE_DeriveDataTypeable
     extensions: DeriveDataTypeable
-  build-depends:
-    base >= 2 && < 5,
-    semigroups >= 0.8 && < 0.9
+  build-depends: base >= 2 && < 5
   exposed-modules:
     Data.Tagged
     Data.Proxy
