diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+0.6.1
+-----
+* Fixed bugs in several of the `Arrow` instances.
+
 0.6
 ---
 * Lazier `R1`.
diff --git a/folds.cabal b/folds.cabal
--- a/folds.cabal
+++ b/folds.cabal
@@ -1,6 +1,6 @@
 name:          folds
 category:      Data, Comonads, Enumerator
-version:       0.6
+version:       0.6.1
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
diff --git a/src/Data/Fold/L1'.hs b/src/Data/Fold/L1'.hs
--- a/src/Data/Fold/L1'.hs
+++ b/src/Data/Fold/L1'.hs
@@ -85,10 +85,10 @@
   arr h = L1' h (\_ a -> a) id
   {-# INLINE arr #-}
   first (L1' k h z) = L1' (first k) h' (first z) where
-    h' (a,b) (c,_) = (h a c, b)
+    h' (a,_) (c,b) = (h a c, b)
   {-# INLINE first #-}
   second (L1' k h z) = L1' (second k) h' (second z) where
-    h' (a,b) (_,c) = (a, h b c)
+    h' (_,b) (a,c) = (a, h b c)
   {-# INLINE second #-}
   L1' k h z *** L1' k' h' z' = L1' (k *** k') h'' (z *** z') where
     h'' (a,b) (c,d) = (h a c, h' b d)
diff --git a/src/Data/Fold/L1.hs b/src/Data/Fold/L1.hs
--- a/src/Data/Fold/L1.hs
+++ b/src/Data/Fold/L1.hs
@@ -90,10 +90,10 @@
   arr h = L1 h (\_ a -> a) id
   {-# INLINE arr #-}
   first (L1 k h z) = L1 (first k) h' (first z) where
-    h' (a,b) (c,_) = (h a c, b)
+    h' (a,_) (c,b) = (h a c, b)
   {-# INLINE first #-}
   second (L1 k h z) = L1 (second k) h' (second z) where
-    h' (a,b) (_,c) = (a, h b c)
+    h' (_,b) (a,c) = (a, h b c)
   {-# INLINE second #-}
   L1 k h z *** L1 k' h' z' = L1 (k *** k') h'' (z *** z') where
     h'' (a,b) (c,d) = (h a c, h' b d)
diff --git a/src/Data/Fold/M1.hs b/src/Data/Fold/M1.hs
--- a/src/Data/Fold/M1.hs
+++ b/src/Data/Fold/M1.hs
@@ -93,10 +93,10 @@
   arr h = M1 h id const
   {-# INLINE arr #-}
   first (M1 k h m) = M1 (first k) (first h) m' where
-    m' (a,b) (c,_) = (m a c, b)
+    m' (a,_) (c,b) = (m a c, b)
   {-# INLINE first #-}
   second (M1 k h m) = M1 (second k) (second h) m' where
-    m' (a,b) (_,c) = (a, m b c)
+    m' (_,b) (a,c) = (a, m b c)
   {-# INLINE second #-}
   M1 k h m *** M1 k' h' m' = M1 (k *** k') (h *** h') m'' where
     m'' (a,b) (c,d) = (m a c, m' b d)
diff --git a/src/Data/Fold/R1.hs b/src/Data/Fold/R1.hs
--- a/src/Data/Fold/R1.hs
+++ b/src/Data/Fold/R1.hs
@@ -90,10 +90,10 @@
   arr h = R1 h const id
   {-# INLINE arr #-}
   first (R1 k h z) = R1 (first k) h' (first z) where
-    h' (a,b) (c,_) = (h a c, b)
+    h' (a,_) (c,b) = (h a c, b)
   {-# INLINE first #-}
   second (R1 k h z) = R1 (second k) h' (second z) where
-    h' (a,b) (_,c) = (a, h b c)
+    h' (_,b) (a,c) = (a, h b c)
   {-# INLINE second #-}
   R1 k h z *** R1 k' h' z' = R1 (k *** k') h'' (z *** z') where
     h'' (a,b) (c,d) = (h a c, h' b d)
