diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 0.10.1
+
+* Allow comonad-5 [#86](https://github.com/snoyberg/mono-traversable/issues/86)
+
 ## 0.10.0.1
 
 * Instance for Data.Sequence.Seq is incorrect. [#83](https://github.com/snoyberg/mono-traversable/issues/83)
diff --git a/mono-traversable.cabal b/mono-traversable.cabal
--- a/mono-traversable.cabal
+++ b/mono-traversable.cabal
@@ -1,5 +1,5 @@
 name:                mono-traversable
-version:             0.10.0.1
+version:             0.10.1
 synopsis:            Type classes for mapping, folding, and traversing monomorphic containers
 description:         Monomorphic variants of the Functor, Foldable, and Traversable typeclasses. If you understand Haskell's basic typeclasses, you understand mono-traversable. In addition to what you are used to, it adds on an IsSequence typeclass and has code for marking data structures as non-empty.
 homepage:            https://github.com/snoyberg/mono-traversable
diff --git a/src/Data/MonoTraversable.hs b/src/Data/MonoTraversable.hs
--- a/src/Data/MonoTraversable.hs
+++ b/src/Data/MonoTraversable.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE ConstrainedClassMethods #-}
+{-# LANGUAGE CPP                     #-}
 {-# LANGUAGE DefaultSignatures       #-}
 {-# LANGUAGE FlexibleContexts        #-}
 {-# LANGUAGE FlexibleInstances       #-}
@@ -68,7 +69,9 @@
 import Control.Comonad.Store (StoreT)
 import Control.Comonad.Env (EnvT)
 import Control.Comonad.Traced (TracedT)
+#if !MIN_VERSION_comonad(5,0,0)
 import Data.Functor.Coproduct (Coproduct)
+#endif
 import Control.Monad.Trans.Writer (WriterT)
 import qualified Control.Monad.Trans.Writer.Strict as Strict (WriterT)
 import Control.Monad.Trans.State (StateT(..))
@@ -151,7 +154,9 @@
 type instance Element (EnvT e w a) = a
 type instance Element (StoreT s w a) = a
 type instance Element (TracedT m w a) = a
+#if !MIN_VERSION_comonad(5,0,0)
 type instance Element (Coproduct f g a) = a
+#endif
 
 -- | Monomorphic containers that can be mapped over.
 class MonoFunctor mono where
@@ -198,7 +203,9 @@
 instance Functor w => MonoFunctor (EnvT e w a)
 instance Functor w => MonoFunctor (StoreT s w a)
 instance Functor w => MonoFunctor (TracedT m w a)
+#if !MIN_VERSION_comonad(5,0,0)
 instance (Functor f, Functor g) => MonoFunctor (Coproduct f g a)
+#endif
 instance Arrow a => MonoFunctor (WrappedArrow a b c)
 instance Functor f => MonoFunctor (MaybeApply f a)
 instance Functor f => MonoFunctor (WrappedApplicative f a)
@@ -1274,7 +1281,9 @@
 instance Comonad w => MonoComonad (EnvT e w a)
 instance Comonad w => MonoComonad (StoreT s w a)
 instance (Comonad w, Monoid m) => MonoComonad (TracedT m w a)
+#if !MIN_VERSION_comonad(5,0,0)
 instance (Comonad f, Comonad g) => MonoComonad (Coproduct f g a)
+#endif
 
 -- Not Comonad
 instance MonoComonad (ViewL a) where
