@@ -106,6 +106,7 @@ instance M.MVector MVector () where
106106 {-# INLINE basicUnsafeSlice #-}
107107 {-# INLINE basicOverlaps #-}
108108 {-# INLINE basicUnsafeNew #-}
109+ {-# INLINE basicInitialize #-}
109110 {-# INLINE basicUnsafeRead #-}
110111 {-# INLINE basicUnsafeWrite #-}
111112 {-# INLINE basicClear #-}
@@ -121,6 +122,9 @@ instance M.MVector MVector () where
121122
122123 basicUnsafeNew n = return (MV_Unit n)
123124
125+ -- Nothing to initialize
126+ basicInitialize _ = return ()
127+
124128 basicUnsafeRead (MV_Unit _) _ = return ()
125129
126130 basicUnsafeWrite (MV_Unit _) _ () = return ()
@@ -166,6 +170,7 @@ instance M.MVector MVector ty where { \
166170; {-# INLINE basicUnsafeSlice #-} \
167171; {-# INLINE basicOverlaps #-} \
168172; {-# INLINE basicUnsafeNew #-} \
173+ ; {-# INLINE basicInitialize #-} \
169174; {-# INLINE basicUnsafeReplicate #-} \
170175; {-# INLINE basicUnsafeRead #-} \
171176; {-# INLINE basicUnsafeWrite #-} \
@@ -177,6 +182,7 @@ instance M.MVector MVector ty where { \
177182; basicUnsafeSlice i n (con v) = con $ M. basicUnsafeSlice i n v \
178183; basicOverlaps (con v1) (con v2) = M. basicOverlaps v1 v2 \
179184; basicUnsafeNew n = con `liftM` M. basicUnsafeNew n \
185+ ; basicInitialize (con v) = M. basicInitialize v \
180186; basicUnsafeReplicate n x = con `liftM` M. basicUnsafeReplicate n x \
181187; basicUnsafeRead (con v) i = M. basicUnsafeRead v i \
182188; basicUnsafeWrite (con v) i x = M. basicUnsafeWrite v i x \
@@ -307,6 +313,7 @@ instance M.MVector MVector Bool where
307313 {-# INLINE basicUnsafeSlice #-}
308314 {-# INLINE basicOverlaps #-}
309315 {-# INLINE basicUnsafeNew #-}
316+ {-# INLINE basicInitialize #-}
310317 {-# INLINE basicUnsafeReplicate #-}
311318 {-# INLINE basicUnsafeRead #-}
312319 {-# INLINE basicUnsafeWrite #-}
@@ -318,6 +325,7 @@ instance M.MVector MVector Bool where
318325 basicUnsafeSlice i n (MV_Bool v) = MV_Bool $ M. basicUnsafeSlice i n v
319326 basicOverlaps (MV_Bool v1) (MV_Bool v2) = M. basicOverlaps v1 v2
320327 basicUnsafeNew n = MV_Bool `liftM` M. basicUnsafeNew n
328+ basicInitialize (MV_Bool v) = M. basicInitialize v
321329 basicUnsafeReplicate n x = MV_Bool `liftM` M. basicUnsafeReplicate n (fromBool x)
322330 basicUnsafeRead (MV_Bool v) i = toBool `liftM` M. basicUnsafeRead v i
323331 basicUnsafeWrite (MV_Bool v) i x = M. basicUnsafeWrite v i (fromBool x)
@@ -356,6 +364,7 @@ instance (RealFloat a, Unbox a) => M.MVector MVector (Complex a) where
356364 {-# INLINE basicUnsafeSlice #-}
357365 {-# INLINE basicOverlaps #-}
358366 {-# INLINE basicUnsafeNew #-}
367+ {-# INLINE basicInitialize #-}
359368 {-# INLINE basicUnsafeReplicate #-}
360369 {-# INLINE basicUnsafeRead #-}
361370 {-# INLINE basicUnsafeWrite #-}
@@ -367,6 +376,7 @@ instance (RealFloat a, Unbox a) => M.MVector MVector (Complex a) where
367376 basicUnsafeSlice i n (MV_Complex v) = MV_Complex $ M. basicUnsafeSlice i n v
368377 basicOverlaps (MV_Complex v1) (MV_Complex v2) = M. basicOverlaps v1 v2
369378 basicUnsafeNew n = MV_Complex `liftM` M. basicUnsafeNew n
379+ basicInitialize (MV_Complex v) = M. basicInitialize v
370380 basicUnsafeReplicate n (x :+ y) = MV_Complex `liftM` M. basicUnsafeReplicate n (x,y)
371381 basicUnsafeRead (MV_Complex v) i = uncurry (:+) `liftM` M. basicUnsafeRead v i
372382 basicUnsafeWrite (MV_Complex v) i (x :+ y) = M. basicUnsafeWrite v i (x,y)
0 commit comments