diff --git a/deque.cabal b/deque.cabal
--- a/deque.cabal
+++ b/deque.cabal
@@ -1,5 +1,5 @@
 name: deque
-version: 0.3.1
+version: 0.3.1.1
 synopsis: Double-ended queues
 description:
   Strict and lazy implementations of Double-Ended Queue (aka Dequeue or Deque)
diff --git a/library/Deque/Lazy.hs b/library/Deque/Lazy.hs
--- a/library/Deque/Lazy.hs
+++ b/library/Deque/Lazy.hs
@@ -133,7 +133,7 @@
 
 -- |
 -- /O(1)/.
--- Revert the deque.
+-- Reverse the deque.
 reverse :: Deque a -> Deque a
 reverse (Deque snocList consList) = Deque consList snocList
 
diff --git a/library/Deque/Lazy/State.hs b/library/Deque/Lazy/State.hs
--- a/library/Deque/Lazy/State.hs
+++ b/library/Deque/Lazy/State.hs
@@ -19,14 +19,14 @@
 
 {-|
 /O(n)/.
-Add elements from the begginning.
+Add elements to the begginning.
 -}
 prepend :: MonadState (Deque a) m => Deque a -> m ()
 prepend deque = modify (deque <>)
 
 {-|
 /O(n)/.
-Add elements from the ending.
+Add elements to the ending.
 -}
 append :: MonadState (Deque a) m => Deque a -> m ()
 append deque = modify (<> deque)
@@ -47,7 +47,7 @@
 
 {-|
 /O(1)/.
-Revert the deque.
+Reverse the deque.
 -}
 reverse :: MonadState (Deque a) m => m ()
 reverse = modify Deque.reverse
diff --git a/library/Deque/Strict.hs b/library/Deque/Strict.hs
--- a/library/Deque/Strict.hs
+++ b/library/Deque/Strict.hs
@@ -54,7 +54,7 @@
 
 -- |
 -- /O(1)/.
--- Revert the deque.
+-- Reverse the deque.
 reverse :: Deque a -> Deque a
 reverse (Deque snocList consList) = Deque consList snocList
 
@@ -202,8 +202,8 @@
 deriving instance Functor Deque
 
 instance Foldable Deque where
-  foldr step init (Deque snocList consList) = foldr step (foldr step init consList) (StrictList.reverse snocList)
-  foldl' step init (Deque snocList consList) = foldl' step (foldl' step init consList) (StrictList.reverse consList)
+  foldr step init (Deque snocList consList) = foldr step (foldr step init (StrictList.reverse snocList)) consList
+  foldl' step init (Deque snocList consList) = foldl' step (foldl' step init consList) (StrictList.reverse snocList)
 
 instance Traversable Deque where
   traverse f (Deque ss cs) =
diff --git a/library/Deque/Strict/State.hs b/library/Deque/Strict/State.hs
--- a/library/Deque/Strict/State.hs
+++ b/library/Deque/Strict/State.hs
@@ -19,14 +19,14 @@
 
 {-|
 /O(n)/.
-Add elements from the begginning.
+Add elements to the begginning.
 -}
 prepend :: MonadState (Deque a) m => Deque a -> m ()
 prepend deque = modify (deque <>)
 
 {-|
 /O(n)/.
-Add elements from the ending.
+Add elements to the ending.
 -}
 append :: MonadState (Deque a) m => Deque a -> m ()
 append deque = modify (<> deque)
@@ -47,7 +47,7 @@
 
 {-|
 /O(1)/.
-Revert the deque.
+Reverse the deque.
 -}
 reverse :: MonadState (Deque a) m => m ()
 reverse = modify Deque.reverse
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -112,6 +112,12 @@
       ,
       testProperty "ap" $ forAll ((,) <$> dequeAndListGen <*> dequeAndListGen) $ \ ((deque1, list1), (deque2, list2)) ->
       toList ((,) <$> deque1 <*> deque2) === ((,) <$> list1 <*> list2)
+      ,
+      testProperty "foldl'" $ forAll dequeAndListGen $ \ (deque, list) ->
+      foldl' (flip (:)) [] deque === foldl' (flip (:)) [] list
+      ,
+      testProperty "foldr" $ forAll dequeAndListGen $ \ (deque, list) ->
+      foldr (:) [] deque === foldr (:) [] list
     ]
     where
       listGen = arbitrary @[Word8]
