Implementations of various algorithms for vector (http://code.haskell.org/~dolio/)

#10Why do read-only functions require MVector

I noticed that the functions on https://hackage.haskell.org/package/vector-algorithms-0.7.0.1/docs/Data-Vector-Algorithms-Search.html like

binarySearch :: (PrimMonad m, MVector v e, Ord e) => v (PrimState m) e -> e -> m Int

require MVector, is that actually necessary? Wouldn't Vector be sufficient here?