I have been trying to use the bitvec: Space-efficient bit vectors library, but most of the interesting operations are using Immutable Vectors. I however is planning to use mutable bit-vectors in my code.
Is it possible to use a mutable vector temporarily as a vector in a function call, without copying it?
Essentially, I want something like this:
extract :: PrimMonad m => MVector (PrimState s) a -> (Vector a -> b) -> m b