diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,4 @@
+0.1.1
+-----
+
+- Support `semigroupoids-5.2.1`
diff --git a/dlist-nonempty.cabal b/dlist-nonempty.cabal
--- a/dlist-nonempty.cabal
+++ b/dlist-nonempty.cabal
@@ -1,5 +1,5 @@
 name:                   dlist-nonempty
-version:                0.1
+version:                0.1.1
 synopsis:               Non-empty difference lists
 description:
   Difference lists are a list-like type supporting O(1) append. This is
@@ -18,7 +18,7 @@
 copyright:              2006-2009 Don Stewart, 2013-2016 Sean Leather, 2017 Oleg Grenrus
 homepage:               https://github.com/phadej/dlist-nonempty
 bug-reports:            https://github.com/phadej/dlist-nonempty/issues
-extra-source-files:     README.md
+extra-source-files:     README.md CHANGELOG.md
 build-type:             Simple
 cabal-version:          >=1.10
 tested-with:
diff --git a/src/Data/DList/NonEmpty/Internal.hs b/src/Data/DList/NonEmpty/Internal.hs
--- a/src/Data/DList/NonEmpty/Internal.hs
+++ b/src/Data/DList/NonEmpty/Internal.hs
@@ -27,8 +27,8 @@
 import Data.Functor.Apply (Apply (..))
 import Data.Functor.Bind (Bind (..))
 import Data.Functor.Alt (Alt (..))
-import Data.Semigroup.Foldable (Foldable1 (..))
-import Data.Semigroup.Traversable (Traversable1 (..))
+import qualified Data.Semigroup.Foldable as SF
+import qualified Data.Semigroup.Traversable as ST
 
 #ifdef __GLASGOW_HASKELL__
 
@@ -257,12 +257,15 @@
 instance Apply NonEmptyDList where (<.>) = (<*>)
 instance Bind NonEmptyDList where (>>-) = (>>=)
 
-instance Foldable1 NonEmptyDList where
-  foldMap1 f = foldMap1 f . toNonEmpty
+instance SF.Foldable1 NonEmptyDList where
+  foldMap1 f = SF.foldMap1 f . toNonEmpty
+#if MIN_VERSION_semigroupoids(5,2,1)
+  toNonEmpty = toNonEmpty
+#endif
 
-instance Traversable1 NonEmptyDList where
-  traverse1 f = fmap fromNonEmpty . traverse1 f . toNonEmpty
-  sequence1   = fmap fromNonEmpty . sequence1 . toNonEmpty
+instance ST.Traversable1 NonEmptyDList where
+  traverse1 f = fmap fromNonEmpty . ST.traverse1 f . toNonEmpty
+  sequence1   = fmap fromNonEmpty . ST.sequence1 . toNonEmpty
 
 instance Alt NonEmptyDList where
   (<!>) = append
