diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
 # Revision history for coercible-subtypes
 
+## 1 -- 2024-12-22
+
+* Breaking changes
+
+  * Remove dependency to `profunctors` package. A `Profunctor`-related function `dimapR`
+    is removed and replaced by `arrowR`.
+    `dimapR` is moved to `coercible-subtypes-profunctor` package.
+
 ## 0.3.0.0 -- 2023-01-01
 
 * Breaking changes
diff --git a/coercible-subtypes.cabal b/coercible-subtypes.cabal
--- a/coercible-subtypes.cabal
+++ b/coercible-subtypes.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                coercible-subtypes
-version:             0.3.0.1
+version:             1
 stability:           experimental
 synopsis:            Coercible but only in one direction
 description: Newtype wrapper 'Data.Type.Coercion.Sub.Sub'
@@ -18,7 +18,8 @@
 copyright:           (c) 2020-2021 Koji Miyazato
 category:            Data
 build-type:          Simple
-extra-source-files:  CHANGELOG.md, README.md
+extra-source-files:  README.md
+extra-doc-files:     CHANGELOG.md
 
 source-repository HEAD
   type:     git
@@ -32,8 +33,7 @@
                        Data.Type.Coercion.Related.Internal,
                        Newtype.Union,
                        Newtype.Intersection
-  build-depends:       base >=4.12 && <4.20,
-                       profunctors
+  build-depends:       base >=4.12 && <4.22
   hs-source-dirs:      src
   default-language:    Haskell2010
   ghc-options:         -Wall -Wcompat
diff --git a/src/Data/Type/Coercion/Sub.hs b/src/Data/Type/Coercion/Sub.hs
--- a/src/Data/Type/Coercion/Sub.hs
+++ b/src/Data/Type/Coercion/Sub.hs
@@ -38,7 +38,7 @@
 
   instantiate,
   mapR, contramapR,
-  bimapR, prodR, prod3R, sumR, dimapR, arrR
+  bimapR, prodR, prod3R, sumR, arrR, arrowR
 ) where
 
 import           Data.Coerce
@@ -46,9 +46,9 @@
 
 import           Data.Bifunctor                  (Bifunctor)
 import           Data.Functor.Contravariant      (Contravariant)
-import           Data.Profunctor                 (Profunctor)
 
 import           Data.Type.Coercion.Sub.Internal
+import Control.Arrow (Arrow)
 
 -- | Make a directed witness of @'coerce' :: a -> b@.
 sub :: Coercible a b => Sub a b
@@ -137,15 +137,15 @@
 prod3R :: Sub a a' -> Sub b b' -> Sub c c' -> Sub (a,b,c) (a',b',c')
 prod3R (Sub Coercion) (Sub Coercion) (Sub Coercion) = Sub Coercion
 
--- | Extend subtype relation over a 'Profunctor'.
-dimapR :: ( forall x x' y y'.
-              (Coercible x x', Coercible y y') => Coercible (t x y) (t x' y')
-          , Profunctor t)
-       => Sub a a' -> Sub b b' -> Sub (t a' b) (t a b')
-dimapR (Sub Coercion) (Sub Coercion) = Sub Coercion
-
--- | 'dimapR' specialized for functions @(->)@
+-- | 'arrowR' specialized for functions @(->)@
 arrR :: Sub a a' -> Sub b b' -> Sub (a' -> b) (a -> b')
-arrR = dimapR
+arrR = arrowR
 
 infixr 1 `arrR`
+
+-- | Extend subtype relation over an 'Arrow'.
+arrowR :: ( forall x x' y y'.
+              (Coercible x x', Coercible y y') => Coercible (t x y) (t x' y')
+          , Arrow t)
+       => Sub a a' -> Sub b b' -> Sub (t a' b) (t a b')
+arrowR (Sub Coercion) (Sub Coercion) = Sub Coercion
