diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
 ersatz-toysat
 =============
 
-[![Build Status](https://secure.travis-ci.org/msakai/ersatz-toysat.png?branch=master)](http://travis-ci.org/msakai/ersatz-toysat) [![Hackage](https://budueba.com/hackage/ersatz-toysat)](https://hackage.haskell.org/package/ersatz-toysat)
+[![Build Status](https://secure.travis-ci.org/msakai/ersatz-toysat.png?branch=master)](http://travis-ci.org/msakai/ersatz-toysat) [![Hackage](https://img.shields.io/hackage/v/ersatz-toysat.svg)](https://hackage.haskell.org/package/ersatz-toysat)
 
 toysat driver as backend for ersatz
 
diff --git a/ersatz-toysat.cabal b/ersatz-toysat.cabal
--- a/ersatz-toysat.cabal
+++ b/ersatz-toysat.cabal
@@ -2,7 +2,7 @@
 --  http://haskell.org/cabal/users-guide/
 
 name:                ersatz-toysat
-version:             0.2.1.0
+version:             0.2.2.0
 synopsis:            toysat driver as backend for ersatz
 description:         toysat driver as backend for ersatz
 homepage:            https://github.com/msakai/ersatz-toysat
@@ -28,12 +28,12 @@
 library
   exposed-modules:     Ersatz.Solver.Toysat
   build-depends:
-    base >=4.6 && <4.9,
+    base >=4.6 && <4.11,
     array >= 0.4 && < 0.6,
     containers >= 0.4.2.1 && < 0.6,
-    transformers >=0.3 && <0.5,
-    ersatz >=0.3 && <0.4,
-    toysolver >=0.2.0  && <0.4.0
+    transformers >=0.3 && <0.6,
+    ersatz >=0.3 && <0.5,
+    toysolver >=0.2.0  && <0.6.0
   hs-source-dirs:      src
   default-language:    Haskell2010
 
diff --git a/src/Ersatz/Solver/Toysat.hs b/src/Ersatz/Solver/Toysat.hs
--- a/src/Ersatz/Solver/Toysat.hs
+++ b/src/Ersatz/Solver/Toysat.hs
@@ -13,9 +13,9 @@
 import Control.Monad
 import Control.Monad.IO.Class
 import Data.Array.IArray
+import qualified Data.Foldable as F
 import qualified Data.IntSet as IntSet
 import qualified Data.IntMap as IntMap
-import qualified Data.Set as Set
 import Ersatz
 import qualified ToySolver.SAT as ToySAT
 
@@ -24,7 +24,7 @@
   solver <- ToySAT.newSolver
   let nv = dimacsNumVariables problem
   ToySAT.newVars_ solver nv
-  forM_ (Set.toList (dimacsClauses problem)) $ \clause -> do
+  F.forM_ (dimacsClauses problem) $ \clause -> do
     ToySAT.addClause solver (IntSet.toList clause)
   ret <- ToySAT.solve solver
   if ret then do
