diff --git a/holmes.cabal b/holmes.cabal
--- a/holmes.cabal
+++ b/holmes.cabal
@@ -11,7 +11,7 @@
 name:               holmes
 description:        A reference library for constraint-solving with propagators and CDCL.
 synopsis:           Tools and combinators for solving constraint problems.
-version:            0.3.0.0
+version:            0.3.0.1
 
 library
   exposed-modules: Control.Monad.Cell.Class
diff --git a/src/Control/Monad/Holmes.hs b/src/Control/Monad/Holmes.hs
--- a/src/Control/Monad/Holmes.hs
+++ b/src/Control/Monad/Holmes.hs
@@ -129,7 +129,7 @@
   => Config Holmes (f x)
   -> (forall m. MonadCell m => [ Prop m (f x) ] -> Prop m (f Bool))
   -> IO (Maybe [ f x ])
-satisfying (coerce -> config :: Config (MoriarT IO) x) f
+satisfying (coerce -> config :: Config (MoriarT IO) (f x)) f
   = MoriarT.runOne (MoriarT.solve config f)
 
 -- | Shuffle the refinements in a configuration. If we make a configuration
@@ -157,5 +157,5 @@
   => Config Holmes (f x)
   -> (forall m. MonadCell m => [ Prop m (f x) ] -> Prop m (f Bool))
   -> IO [[ f x ]]
-whenever (coerce -> config :: Config (MoriarT IO) x) f
+whenever (coerce -> config :: Config (MoriarT IO) (f x)) f
   = MoriarT.runAll (MoriarT.solve config f)
diff --git a/test/Test/Data/Propagator.hs b/test/Test/Data/Propagator.hs
--- a/test/Test/Data/Propagator.hs
+++ b/test/Test/Data/Propagator.hs
@@ -131,7 +131,7 @@
 
   let choices = Prop.choose n k
       factorial 0 = 1
-      factorial n = n * factorial (pred n)
+      factorial m = m * factorial (pred m)
 
   length choices === factorial n `div` (factorial k * factorial (n-k))
 
