@@ -6,7 +6,7 @@ module QC.Rechunked (
8import Control.Monad (forM, forM_)
8import Control.Monad (forM, forM_)
9−import Control.Monad.ST (runST)
9+import Control.Monad.ST (ST, runST)
10import Data.List (unfoldr)
10import Data.List (unfoldr)
11import Test.QuickCheck (Gen, choose)
11import Test.QuickCheck (Gen, choose)
12import qualified Data.ByteString as B
12import qualified Data.ByteString as B
@@ -49,6 +49,7 @@ fisherYates xs = (V.toList . V.backpermute v) `fmap` swapIndices (G.length v)
49 return (runST (swapAll swaps))
49 return (runST (swapAll swaps))
51 n = n0 - 1
51 n = n0 - 1
52+ swapAll :: [(Int,Int)] -> ST s (V.Vector Int)
52 swapAll ijs = do
53 swapAll ijs = do
53 mv <- G.unsafeThaw (G.enumFromTo 0 n :: V.Vector Int)
54 mv <- G.unsafeThaw (G.enumFromTo 0 n :: V.Vector Int)
54 forM_ ijs $ uncurry (M.swap mv)
55 forM_ ijs $ uncurry (M.swap mv)