2525-- are set to ⊥.
2626module Data.Vector.Strict.Mutable (
2727 -- * Mutable boxed vectors
28- MVector , IOVector , STVector ,
29- pattern MVector ,
28+ MVector (U. MVector ), IOVector , STVector ,
3029
3130 -- * Accessors
3231
@@ -81,19 +80,13 @@ module Data.Vector.Strict.Mutable (
8180import Data.Primitive.Array
8281import qualified Data.Vector.Generic.Mutable as G
8382import qualified Data.Vector.Mutable as MV
84- import Data.Vector.Strict.Mutable.Unsafe (MVector )
85- import qualified Data.Vector.Strict.Mutable.Unsafe as U
83+ import Data.Vector.Strict.Mutable.Unsafe as U (MVector (.. ), pattern MVector )
8684import Control.Monad.Primitive
8785
8886import Prelude ( Ord , Bool , Int , Maybe , Ordering (.. ), Monad (.. ), (<$>) , ($) )
8987
9088#include "vector.h"
9189
92- pattern MVector :: MV. MVector s a -> MVector s a
93- pattern MVector v = U. UnsafeMVector v
94- {-# COMPLETE MVector #-}
95- {-# DEPRECATED MVector "Use MVector constructor exported from \"Data.Vector.Strict.Unsafe\"" #-}
96-
9790type IOVector = MVector RealWorld
9891type STVector s = MVector s
9992
@@ -105,15 +98,15 @@ type STVector s = MVector s
10598-- vector. Vectors will share mutable buffer
10699toLazy :: MVector s a -> MV. MVector s a
107100{-# INLINE toLazy #-}
108- toLazy (MVector vec) = vec
101+ toLazy (UnsafeMVector vec) = vec
109102
110103-- | /O(n)/ Convert lazy mutable vector to strict mutable
111104-- vector. Vectors will share mutable buffer. This function evaluates
112105-- vector elements to WHNF.
113106fromLazy :: PrimMonad m => MV. MVector (PrimState m ) a -> m (MVector (PrimState m ) a )
114107fromLazy mvec = stToPrim $ do
115108 G. foldM' (\ _ ! _ -> return () ) () mvec
116- return $ MVector mvec
109+ return $ UnsafeMVector mvec
117110
118111
119112-- Conversions - Arrays
@@ -126,7 +119,7 @@ fromLazy mvec = stToPrim $ do
126119fromMutableArray :: PrimMonad m => MutableArray (PrimState m ) a -> m (MVector (PrimState m ) a )
127120{-# INLINE fromMutableArray #-}
128121fromMutableArray marr = stToPrim $ do
129- mvec <- MVector <$> MV. fromMutableArray marr
122+ mvec <- UnsafeMVector <$> MV. fromMutableArray marr
130123 G. foldM' (\ _ ! _ -> return () ) () mvec
131124 return mvec
132125
@@ -135,7 +128,7 @@ fromMutableArray marr = stToPrim $ do
135128-- @since 0.13.2.0
136129toMutableArray :: PrimMonad m => MVector (PrimState m ) a -> m (MutableArray (PrimState m ) a )
137130{-# INLINE toMutableArray #-}
138- toMutableArray (MVector v) = MV. toMutableArray v
131+ toMutableArray (UnsafeMVector v) = MV. toMutableArray v
139132
140133
141134-- Length information
0 commit comments