diff --git a/library/Unsequential/Execution.hs b/library/Unsequential/Execution.hs
--- a/library/Unsequential/Execution.hs
+++ b/library/Unsequential/Execution.hs
@@ -25,10 +25,10 @@
           mplus tryHead tryTail
           where
             tryHead =
-              fmap (\result -> (alternativesTail, result : results)) $
+              liftM (\result -> (alternativesTail, result : results)) $
               alternativesHead
             tryTail =
-              fmap (\(alternatives, results) -> (alternativesHead : alternatives, results)) $
+              liftM (\(alternatives, results) -> (alternativesHead : alternatives, results)) $
               loop (alternativesTail, results)
         _ ->
           skip $> (alternatives, results)
diff --git a/library/Unsequential/Prelude.hs b/library/Unsequential/Prelude.hs
--- a/library/Unsequential/Prelude.hs
+++ b/library/Unsequential/Prelude.hs
@@ -31,7 +31,7 @@
 -------------------------
 
 {-# INLINE modifyM #-}
-modifyM :: Monad m => (a -> m a) -> StateT a m ()
+modifyM :: Functor m => (a -> m a) -> StateT a m ()
 modifyM f =
   StateT (fmap (\s -> ((), s)) . f)
 
diff --git a/unsequential.cabal b/unsequential.cabal
--- a/unsequential.cabal
+++ b/unsequential.cabal
@@ -1,7 +1,7 @@
 name:
   unsequential
 version:
-  0.5.1
+  0.5.2
 synopsis:
   An extension removing the sequentiality from monads
 description:
@@ -47,7 +47,7 @@
   exposed-modules:
     Unsequential
   build-depends:
-    dlist >= 0.7 && < 0.8,
+    dlist >= 0.7 && < 0.9,
     -- 
     transformers >= 0.4 && < 0.6,
     base-prelude < 2,
