diff --git a/Data/BinaryList.hs b/Data/BinaryList.hs
--- a/Data/BinaryList.hs
+++ b/Data/BinaryList.hs
@@ -328,8 +328,10 @@
     -- Recursion assuming both lists have the same length
     goEquals (ListNode n l r) (ListNode _ l' r') =
                      ListNode (n+1) (goEquals l l') (goEquals r r')
-    goEquals xs ys = let (x,y) = f $ g (head xs) (head ys)
-                     in  ListNode 1 (ListEnd x) (ListEnd y)
+    goEquals (ListEnd x) (ListEnd y) =
+      let (x',y') = f $ g x y
+      in  ListNode 1 (ListEnd x') (ListEnd y')
+    goEquals _ _ = undefined -- This can't happen!
 
 {-# RULES
       "Data.BinaryList: pairBuilder/zipWith"
@@ -359,7 +361,8 @@
     -- Recursion assuming both lists have the same length
     goEquals (ListNode n l r) (ListNode _ l' r') =
                      ListNode n (goEquals l l') (goEquals r r')
-    goEquals xs ys = ListEnd $ f (head xs) (head ys)
+    goEquals (ListEnd x) (ListEnd y) = ListEnd (f x y)
+    goEquals _ _ = undefined -- this can't happen
 
 -- | /O(n)/. Zip two binary lists in pairs.
 zip :: BinList a -> BinList b -> BinList (a,b)
diff --git a/bench/Main.hs b/bench/Main.hs
--- a/bench/Main.hs
+++ b/bench/Main.hs
@@ -17,6 +17,9 @@
 blist1024 :: BinList Int
 blist1024 = BL.generate 10 id
 
+blist1024d :: BinList (Int,Int)
+blist1024d = BL.zip blist1024 (BL.reverse blist1024)
+
 main :: IO ()
 main = defaultMain
   [ bgroup "1024"
@@ -26,5 +29,13 @@
       , bench "generate" $ nf (\i -> BL.generate i id) 10
       , bench "replicate" $ nf (\i -> BL.replicate i (0 :: Int)) 10
       , bench "toListSegment" $ nf (\e -> BL.toListSegment 256 e blist1024) 768
+      , bench "split" $ nf BL.split blist1024
+      , bench "take" $ nf (BL.take 5) blist1024
+      , bench "takeEnd" $ nf (BL.takeEnd 5) blist1024
+      , bench "reverse" $ nf BL.reverse blist1024
+      , bench "joinPairs" $ nf BL.joinPairs blist1024d
+      , bench "disjoinPairs" $ nf BL.disjoinPairs blist1024
+      , bench "zip" $ nf (\(xs,ys) -> BL.zip xs ys) (blist1024, blist1024)
+      , bench "unzip" $ nf BL.unzip blist1024d
         ]
     ]
diff --git a/binary-list.cabal b/binary-list.cabal
--- a/binary-list.cabal
+++ b/binary-list.cabal
@@ -1,5 +1,5 @@
 name:                binary-list
-version:             1.1.1.1
+version:             1.1.1.2
 synopsis:            Lists of length a power of two.
 description:         Implementation of lists whose number of elements is a
                      power of two. Binary lists have this property by definition,
