diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,15 @@
 Changelog
 =========
 
+Version 0.1.2.3
+---------------
+
+*June 19, 2018*
+
+<https://github.com/mstksg/hmatrix-backprop/releases/tag/v0.1.2.3>
+
+*   Fix compatibility with *backprop-0.2.5.0*
+
 Version 0.1.2.2
 ---------------
 
diff --git a/hmatrix-backprop.cabal b/hmatrix-backprop.cabal
--- a/hmatrix-backprop.cabal
+++ b/hmatrix-backprop.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: c8c0a720d86e2c1a4c75f474776c12fd1f024e07271a1beb72b7e28c260dc66d
+-- hash: f67a7280d87004eef20dcb169423839781fda7736d0e2d9fc82722d4e39c0c64
 
 name:           hmatrix-backprop
-version:        0.1.2.2
+version:        0.1.2.3
 synopsis:       hmatrix operations lifted for backprop
 description:    hmatrix operations lifted for backprop, along with orphan instances.
                 .
@@ -37,7 +37,7 @@
       src
   ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wredundant-constraints
   build-depends:
-      backprop >=0.2.4
+      backprop >=0.2.5
     , base >=4.7 && <5
     , ghc-typelits-knownnat
     , ghc-typelits-natnormalise
@@ -59,7 +59,7 @@
       test
   ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
   build-depends:
-      backprop >=0.2.4
+      backprop >=0.2.5
     , base >=4.7 && <5
     , finite-typelits
     , hedgehog
diff --git a/src/Numeric/LinearAlgebra/Static/Backprop.hs b/src/Numeric/LinearAlgebra/Static/Backprop.hs
--- a/src/Numeric/LinearAlgebra/Static/Backprop.hs
+++ b/src/Numeric/LinearAlgebra/Static/Backprop.hs
@@ -195,6 +195,7 @@
 
 import           Data.Bifunctor
 import           Data.Coerce
+import           Data.Functor.Identity
 import           Data.Maybe
 import           Data.Proxy
 import           Foreign.Storable
@@ -268,9 +269,14 @@
     -> BVar s H.ℝ
     -> BVar s (H.R 4)
 vec4 vX vY vZ vW = isoVarN
-    (\(x ::< y ::< z ::< w ::< Ø) -> H.vec4 x y z w)
-    (\(H.rVec->v) -> SVS.index v 0 ::< SVS.index v 1 ::< SVS.index v 2 ::< SVS.index v 3 ::< Ø)
-    (vX :< vY :< vZ :< vW :< Ø)
+    (\(Identity x :& Identity y :& Identity z :& Identity w :& RNil) -> H.vec4 x y z w)
+    (\(H.rVec->v) -> Identity (SVS.index v 0)
+                  :& Identity (SVS.index v 1)
+                  :& Identity (SVS.index v 2)
+                  :& Identity (SVS.index v 3)
+                  :& RNil
+    )
+    (vX :& vY :& vZ :& vW :& RNil)
 {-# INLINE vec4 #-}
 
 (&) :: (KnownNat n, 1 <= n, KnownNat (n + 1), Reifies s W)
