diff --git a/Data/Vector/Algorithms/Intro.hs b/Data/Vector/Algorithms/Intro.hs
--- a/Data/Vector/Algorithms/Intro.hs
+++ b/Data/Vector/Algorithms/Intro.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeOperators, BangPatterns #-}
+{-# LANGUAGE TypeOperators, BangPatterns, ScopedTypeVariables #-}
 
 -- ---------------------------------------------------------------------------
 -- |
@@ -168,16 +168,21 @@
   where c = (u + l) `div` 2
 {-# INLINE partialSortByBounds #-}
 
-partitionBy :: (PrimMonad m, MVector v e)
+partitionBy :: forall m v e. (PrimMonad m, MVector v e)
             => Comparison e -> v (PrimState m) e -> e -> Int -> Int -> m Int
 partitionBy cmp a = partUp
  where
+ -- 6.10 panics without the signatures for partUp and partDown, 6.12 and later
+ -- versions don't need them
+ partUp :: e -> Int -> Int -> m Int
  partUp p l u
    | l < u = do e <- unsafeRead a l
                 case cmp e p of
                   LT -> partUp p (l+1) u
                   _  -> partDown p l (u-1)
    | otherwise = return l
+
+ partDown :: e -> Int -> Int -> m Int
  partDown p l u
    | l < u = do e <- unsafeRead a u
                 case cmp p e of
diff --git a/vector-algorithms.cabal b/vector-algorithms.cabal
--- a/vector-algorithms.cabal
+++ b/vector-algorithms.cabal
@@ -1,5 +1,5 @@
 Name:              vector-algorithms
-Version:           0.3
+Version:           0.3.1
 License:           BSD3
 License-File:      LICENSE
 Author:            Dan Doel
@@ -8,8 +8,6 @@
 Category:          Data
 Synopsis:          Efficient algorithms for vector arrays
 Description:       Efficient algorithms for vector arrays
-                   be sure to compile with -O2, and -fvia-C -optc-O3 is
-                   recommended.
 Build-Type:        Simple
 Cabal-Version:     >= 1.2.3
 
