@@ -1,7 +1,88 @@
1−diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Bundle/Monadic.hs ghc-package-vector-0.11.0.0/Data/Vector/Fusion/Bundle/Monadic.hs
2−--- hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Bundle/Monadic.hs 2015-07-13 12:26:16.000000000 +0800
3−+++ ghc-package-vector-0.11.0.0/Data/Vector/Fusion/Bundle/Monadic.hs 2001-09-09 09:46:40.000000000 +0800
4−@@ -101,12 +101,20 @@
1+diff --git a/Data/Vector.hs b/Data/Vector.hs
2+index db6dfb7..797e096 100644
3+--- a/Data/Vector.hs
4++++ b/Data/Vector.hs
5+@@ -150,7 +150,7 @@ module Data.Vector (
6+ -- * Conversions
7+
8+ -- ** Lists
9+- toList, fromList, fromListN,
10++ toList, Data.Vector.fromList, Data.Vector.fromListN,
11+
12+ -- ** Other vector types
13+ G.convert,
14+@@ -187,11 +187,14 @@ import Data.Typeable ( Typeable )
15+ import Data.Data ( Data(..) )
16+ import Text.Read ( Read(..), readListPrecDefault )
17+
18+-import Data.Monoid ( Monoid(..) )
19+ import qualified Control.Applicative as Applicative
20+ import qualified Data.Foldable as Foldable
21+ import qualified Data.Traversable as Traversable
22+
23++#if !MIN_VERSION_base(4,8,0)
24++import Data.Monoid ( Monoid(..) )
25++#endif
26++
27+ #if __GLASGOW_HASKELL__ >= 708
28+ import qualified GHC.Exts as Exts (IsList(..))
29+ #endif
30+@@ -220,8 +223,8 @@ instance Read a => Read (Vector a) where
31+
32+ instance Exts.IsList (Vector a) where
33+ type Item (Vector a) = a
34+- fromList = fromList
35+- fromListN = fromListN
36++ fromList = Data.Vector.fromList
37++ fromListN = Data.Vector.fromListN
38+ toList = toList
39+ #endif
40+
41+@@ -297,7 +300,7 @@ instance Functor Vector where
42+
43+ instance Monad Vector where
44+ {-# INLINE return #-}
45+- return = singleton
46++ return = Applicative.pure
47+
48+ {-# INLINE (>>=) #-}
49+ (>>=) = flip concatMap
50+@@ -341,7 +344,7 @@ instance Foldable.Foldable Vector where
51+
52+ instance Traversable.Traversable Vector where
53+ {-# INLINE traverse #-}
54+- traverse f xs = fromList Applicative.<$> Traversable.traverse f (toList xs)
55++ traverse f xs = Data.Vector.fromList Applicative.<$> Traversable.traverse f (toList xs)
56+
57+ {-# INLINE mapM #-}
58+ mapM = mapM
59+@@ -917,7 +920,7 @@ imapM_ :: Monad m => (Int -> a -> m b) -> Vector a -> m ()
60+ imapM_ = G.imapM_
61+
62+ -- | /O(n)/ Apply the monadic action to all elements of the vector, yielding a
63+--- vector of results. Equvalent to @flip 'mapM'@.
64++-- vector of results. Equivalent to @flip 'mapM'@.
65+ forM :: Monad m => Vector a -> (a -> m b) -> m (Vector b)
66+ {-# INLINE forM #-}
67+ forM = G.forM
68+diff --git a/Data/Vector/Fusion/Bundle.hs b/Data/Vector/Fusion/Bundle.hs
69+index 53bddda..aeb2945 100644
70+--- a/Data/Vector/Fusion/Bundle.hs
71++++ b/Data/Vector/Fusion/Bundle.hs
72+@@ -111,7 +111,7 @@ type Bundle = M.Bundle Id
73+ type MBundle = M.Bundle
74+
75+ inplace :: (forall m. Monad m => S.Stream m a -> S.Stream m b)
76+- -> (Size -> Size) -> Bundle v a -> Bundle v b
77++ -> (Size -> Size) -> Bundle v a -> Bundle v b
78+ {-# INLINE_FUSED inplace #-}
79+ inplace f g b = b `seq` M.fromStream (f (M.elements b)) (g (M.size b))
80+
81+diff --git a/Data/Vector/Fusion/Bundle/Monadic.hs b/Data/Vector/Fusion/Bundle/Monadic.hs
82+index 66789d9..9f9a81a 100644
83+--- a/Data/Vector/Fusion/Bundle/Monadic.hs
84++++ b/Data/Vector/Fusion/Bundle/Monadic.hs
85+@@ -101,12 +101,20 @@ import Prelude hiding ( length, null,
586 scanl, scanl1,
687 enumFromTo, enumFromThenTo )
788
@@ -24,7 +105,7 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Bundle/Monadic.hs gh
24105 data Chunk v a = Chunk Int (forall m. (PrimMonad m, Vector v a) => Mutable v (PrimState m) a -> m ())
25106
26107 -- | Monadic streams
27−@@ -888,6 +896,7 @@
108+@@ -888,6 +896,7 @@ enumFromTo_big_word x y = x `seq` y `seq` fromStream (Stream step x) (Exact (len
28109 :: Monad m => Integer -> Integer -> Bundle m v Integer #-}
29110
30111
@@ -32,7 +113,7 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Bundle/Monadic.hs gh
32113
33114 -- FIXME: the "too large" test is totally wrong
34115 enumFromTo_big_int :: (Integral a, Monad m) => a -> a -> Bundle m v a
35−@@ -906,7 +915,6 @@
116+@@ -906,7 +915,6 @@ enumFromTo_big_int x y = x `seq` y `seq` fromStream (Stream step x) (Exact (len
36117 step z | z <= y = return $ Yield z (z+1)
37118 | otherwise = return $ Done
38119
@@ -40,22 +121,11 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Bundle/Monadic.hs gh
40121
41122 {-# RULES
42123
43−diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Bundle.hs ghc-package-vector-0.11.0.0/Data/Vector/Fusion/Bundle.hs
44−--- hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Bundle.hs 2015-07-13 12:26:16.000000000 +0800
45−+++ ghc-package-vector-0.11.0.0/Data/Vector/Fusion/Bundle.hs 2001-09-09 09:46:40.000000000 +0800
46−@@ -111,7 +111,7 @@
47− type MBundle = M.Bundle
48−
49− inplace :: (forall m. Monad m => S.Stream m a -> S.Stream m b)
50−- -> (Size -> Size) -> Bundle v a -> Bundle v b
51−+ -> (Size -> Size) -> Bundle v a -> Bundle v b
52− {-# INLINE_FUSED inplace #-}
53− inplace f g b = b `seq` M.fromStream (f (M.elements b)) (g (M.size b))
54−
55−diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Stream/Monadic.hs ghc-package-vector-0.11.0.0/Data/Vector/Fusion/Stream/Monadic.hs
56−--- hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Stream/Monadic.hs 2015-07-13 12:26:16.000000000 +0800
57−+++ ghc-package-vector-0.11.0.0/Data/Vector/Fusion/Stream/Monadic.hs 2001-09-09 09:46:40.000000000 +0800
58−@@ -89,8 +89,12 @@
124+diff --git a/Data/Vector/Fusion/Stream/Monadic.hs b/Data/Vector/Fusion/Stream/Monadic.hs
125+index a0c13e4..7297587 100644
126+--- a/Data/Vector/Fusion/Stream/Monadic.hs
127++++ b/Data/Vector/Fusion/Stream/Monadic.hs
128+@@ -89,8 +89,12 @@ import Prelude hiding ( length, null,
59129 scanl, scanl1,
60130 enumFromTo, enumFromThenTo )
61131
@@ -69,7 +139,7 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Stream/Monadic.hs gh
69139
70140 #if __GLASGOW_HASKELL__ >= 708
71141 import GHC.Types ( SPEC(..) )
72−@@ -101,6 +105,10 @@
142+@@ -101,6 +105,10 @@ import GHC.Exts ( SpecConstrAnnotation(..) )
73143 #include "vector.h"
74144 #include "MachDeps.h"
75145
@@ -80,7 +150,7 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Stream/Monadic.hs gh
80150 #if __GLASGOW_HASKELL__ < 708
81151 data SPEC = SPEC | SPEC2
82152 #if __GLASGOW_HASKELL__ >= 700
83−@@ -1403,6 +1411,8 @@
153+@@ -1403,6 +1411,8 @@ enumFromTo_big_word x y = x `seq` y `seq` Stream step x
84154
85155
86156
@@ -89,7 +159,7 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Stream/Monadic.hs gh
89159 -- FIXME: the "too large" test is totally wrong
90160 enumFromTo_big_int :: (Integral a, Monad m) => a -> a -> Stream m a
91161 {-# INLINE_FUSED enumFromTo_big_int #-}
92−@@ -1412,8 +1422,6 @@
162+@@ -1412,8 +1422,6 @@ enumFromTo_big_int x y = x `seq` y `seq` Stream step x
93163 step z | z <= y = return $ Yield z (z+1)
94164 | otherwise = return $ Done
95165
@@ -98,15 +168,16 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Stream/Monadic.hs gh
98168 {-# RULES
99169
100170 "enumFromTo<Int64> [Stream]"
101−diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Util.hs ghc-package-vector-0.11.0.0/Data/Vector/Fusion/Util.hs
102−--- hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Util.hs 2015-07-13 12:26:16.000000000 +0800
103−+++ ghc-package-vector-0.11.0.0/Data/Vector/Fusion/Util.hs 2001-09-09 09:46:40.000000000 +0800
171+diff --git a/Data/Vector/Fusion/Util.hs b/Data/Vector/Fusion/Util.hs
172+index 50f6b4d..855bf5d 100644
173+--- a/Data/Vector/Fusion/Util.hs
174++++ b/Data/Vector/Fusion/Util.hs
104175@@ -1,3 +1,4 @@
105176+{-# LANGUAGE CPP #-}
106177 -- |
107178 -- Module : Data.Vector.Fusion.Util
108179 -- Copyright : (c) Roman Leshchinskiy 2009
109−@@ -16,7 +17,9 @@
180+@@ -16,7 +17,9 @@ module Data.Vector.Fusion.Util (
110181 delay_inline, delayed_min
111182 ) where
112183
@@ -116,7 +187,7 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Util.hs ghc-package-
116187
117188 -- | Identity monad
118189 newtype Id a = Id { unId :: a }
119−@@ -29,7 +32,7 @@
190+@@ -29,7 +32,7 @@ instance Applicative Id where
120191 Id f <*> Id x = Id (f x)
121192
122193 instance Monad Id where
@@ -125,7 +196,7 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Util.hs ghc-package-
125196 Id x >>= f = f x
126197
127198 -- | Box monad
128−@@ -43,7 +46,7 @@
199+@@ -43,7 +46,7 @@ instance Applicative Box where
129200 Box f <*> Box x = Box (f x)
130201
131202 instance Monad Box where
@@ -134,27 +205,16 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Fusion/Util.hs ghc-package-
134205 Box x >>= f = f x
135206
136207 -- | Delay inlining a function until late in the game (simplifier phase 0).
137−@@ -55,4 +58,3 @@
208+@@ -55,4 +58,3 @@ delay_inline f = f
138209 delayed_min :: Int -> Int -> Int
139210 {-# INLINE [0] delayed_min #-}
140211 delayed_min m n = min m n
141212-
142−diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Generic/Mutable.hs ghc-package-vector-0.11.0.0/Data/Vector/Generic/Mutable.hs
143−--- hackage-package-vector-0.11.0.0/Data/Vector/Generic/Mutable.hs 2015-07-13 12:26:16.000000000 +0800
144−+++ ghc-package-vector-0.11.0.0/Data/Vector/Generic/Mutable.hs 2001-09-09 09:46:40.000000000 +0800
145−@@ -584,7 +584,7 @@
146− new n = BOUNDS_CHECK(checkLength) "new" n
147− $ unsafeNew n >>= \v -> basicInitialize v >> return v
148−
149−--- | Create a mutable vector of the given length. The length is not checked.
150−+-- | Create a mutable vector of the given length. The memory is not initialized.
151− unsafeNew :: (PrimMonad m, MVector v a) => Int -> m (v (PrimState m) a)
152− {-# INLINE unsafeNew #-}
153− unsafeNew n = UNSAFE_CHECK(checkLength) "unsafeNew" n
154−diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Generic.hs ghc-package-vector-0.11.0.0/Data/Vector/Generic.hs
155−--- hackage-package-vector-0.11.0.0/Data/Vector/Generic.hs 2015-07-13 12:26:16.000000000 +0800
156−+++ ghc-package-vector-0.11.0.0/Data/Vector/Generic.hs 2001-09-09 09:46:40.000000000 +0800
157−@@ -1038,7 +1038,7 @@
213+diff --git a/Data/Vector/Generic.hs b/Data/Vector/Generic.hs
214+index 478a75a..a299d86 100644
215+--- a/Data/Vector/Generic.hs
216++++ b/Data/Vector/Generic.hs
217+@@ -1038,7 +1038,7 @@ imapM_ :: (Monad m, Vector v a) => (Int -> a -> m b) -> v a -> m ()
158218 imapM_ f = Bundle.mapM_ (uncurry f) . Bundle.indexed . stream
159219
160220 -- | /O(n)/ Apply the monadic action to all elements of the vector, yielding a
@@ -163,10 +223,24 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Generic.hs ghc-package-vect
163223 forM :: (Monad m, Vector v a, Vector v b) => v a -> (a -> m b) -> m (v b)
164224 {-# INLINE forM #-}
165225 forM as f = mapM f as
166−diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Mutable.hs ghc-package-vector-0.11.0.0/Data/Vector/Mutable.hs
167−--- hackage-package-vector-0.11.0.0/Data/Vector/Mutable.hs 2015-07-13 12:26:16.000000000 +0800
168−+++ ghc-package-vector-0.11.0.0/Data/Vector/Mutable.hs 2001-09-09 09:46:40.000000000 +0800
169−@@ -268,7 +268,7 @@
226+diff --git a/Data/Vector/Generic/Mutable.hs b/Data/Vector/Generic/Mutable.hs
227+index c174c71..e3d02bd 100644
228+--- a/Data/Vector/Generic/Mutable.hs
229++++ b/Data/Vector/Generic/Mutable.hs
230+@@ -584,7 +584,7 @@ new :: (PrimMonad m, MVector v a) => Int -> m (v (PrimState m) a)
231+ new n = BOUNDS_CHECK(checkLength) "new" n
232+ $ unsafeNew n >>= \v -> basicInitialize v >> return v
233+
234+--- | Create a mutable vector of the given length. The length is not checked.
235++-- | Create a mutable vector of the given length. The memory is not initialized.
236+ unsafeNew :: (PrimMonad m, MVector v a) => Int -> m (v (PrimState m) a)
237+ {-# INLINE unsafeNew #-}
238+ unsafeNew n = UNSAFE_CHECK(checkLength) "unsafeNew" n
239+diff --git a/Data/Vector/Mutable.hs b/Data/Vector/Mutable.hs
240+index d1af9de..e3498ca 100644
241+--- a/Data/Vector/Mutable.hs
242++++ b/Data/Vector/Mutable.hs
243+@@ -268,7 +268,7 @@ new :: PrimMonad m => Int -> m (MVector (PrimState m) a)
170244 {-# INLINE new #-}
171245 new = G.new
172246
@@ -175,10 +249,34 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Mutable.hs ghc-package-vect
175249 unsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) a)
176250 {-# INLINE unsafeNew #-}
177251 unsafeNew = G.unsafeNew
178−diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Primitive/Mutable.hs ghc-package-vector-0.11.0.0/Data/Vector/Primitive/Mutable.hs
179−--- hackage-package-vector-0.11.0.0/Data/Vector/Primitive/Mutable.hs 2015-07-13 12:26:16.000000000 +0800
180−+++ ghc-package-vector-0.11.0.0/Data/Vector/Primitive/Mutable.hs 2001-09-09 09:46:40.000000000 +0800
181−@@ -211,7 +211,7 @@
252+diff --git a/Data/Vector/Primitive.hs b/Data/Vector/Primitive.hs
253+index 251b595..7f653b1 100644
254+--- a/Data/Vector/Primitive.hs
255++++ b/Data/Vector/Primitive.hs
256+@@ -164,7 +164,9 @@ import Data.Typeable ( Typeable )
257+ import Data.Data ( Data(..) )
258+ import Text.Read ( Read(..), readListPrecDefault )
259+
260++#if !MIN_VERSION_base(4,8,0)
261+ import Data.Monoid ( Monoid(..) )
262++#endif
263+
264+ #if __GLASGOW_HASKELL__ >= 708
265+ import qualified GHC.Exts as Exts
266+@@ -773,7 +775,7 @@ mapM_ :: (Monad m, Prim a) => (a -> m b) -> Vector a -> m ()
267+ mapM_ = G.mapM_
268+
269+ -- | /O(n)/ Apply the monadic action to all elements of the vector, yielding a
270+--- vector of results. Equvalent to @flip 'mapM'@.
271++-- vector of results. Equivalent to @flip 'mapM'@.
272+ forM :: (Monad m, Prim a, Prim b) => Vector a -> (a -> m b) -> m (Vector b)
273+ {-# INLINE forM #-}
274+ forM = G.forM
275+diff --git a/Data/Vector/Primitive/Mutable.hs b/Data/Vector/Primitive/Mutable.hs
276+index 85595ae..2a2eb1e 100644
277+--- a/Data/Vector/Primitive/Mutable.hs
278++++ b/Data/Vector/Primitive/Mutable.hs
279+@@ -211,7 +211,7 @@ new :: (PrimMonad m, Prim a) => Int -> m (MVector (PrimState m) a)
182280 {-# INLINE new #-}
183281 new = G.new
184282
@@ -187,10 +285,11 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Primitive/Mutable.hs ghc-pa
187285 unsafeNew :: (PrimMonad m, Prim a) => Int -> m (MVector (PrimState m) a)
188286 {-# INLINE unsafeNew #-}
189287 unsafeNew = G.unsafeNew
190−diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Primitive.hs ghc-package-vector-0.11.0.0/Data/Vector/Primitive.hs
191−--- hackage-package-vector-0.11.0.0/Data/Vector/Primitive.hs 2015-07-13 12:26:16.000000000 +0800
192−+++ ghc-package-vector-0.11.0.0/Data/Vector/Primitive.hs 2001-09-09 09:46:40.000000000 +0800
193−@@ -164,7 +164,9 @@
288+diff --git a/Data/Vector/Storable.hs b/Data/Vector/Storable.hs
289+index 1d0f46e..ae4e4bb 100644
290+--- a/Data/Vector/Storable.hs
291++++ b/Data/Vector/Storable.hs
292+@@ -169,7 +169,9 @@ import Data.Typeable ( Typeable )
194293 import Data.Data ( Data(..) )
195294 import Text.Read ( Read(..), readListPrecDefault )
196295
@@ -200,25 +299,26 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Primitive.hs ghc-package-ve
200299
201300 #if __GLASGOW_HASKELL__ >= 708
202301 import qualified GHC.Exts as Exts
203−@@ -773,7 +775,7 @@
302+@@ -783,7 +785,7 @@ mapM_ :: (Monad m, Storable a) => (a -> m b) -> Vector a -> m ()
204303 mapM_ = G.mapM_
205304
206305 -- | /O(n)/ Apply the monadic action to all elements of the vector, yielding a
207306--- vector of results. Equvalent to @flip 'mapM'@.
208307+-- vector of results. Equivalent to @flip 'mapM'@.
209− forM :: (Monad m, Prim a, Prim b) => Vector a -> (a -> m b) -> m (Vector b)
308+ forM :: (Monad m, Storable a, Storable b) => Vector a -> (a -> m b) -> m (Vector b)
210309 {-# INLINE forM #-}
211310 forM = G.forM
212−diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Storable/Mutable.hs ghc-package-vector-0.11.0.0/Data/Vector/Storable/Mutable.hs
213−--- hackage-package-vector-0.11.0.0/Data/Vector/Storable/Mutable.hs 2015-07-13 12:26:16.000000000 +0800
214−+++ ghc-package-vector-0.11.0.0/Data/Vector/Storable/Mutable.hs 2001-09-09 09:46:40.000000000 +0800
311+diff --git a/Data/Vector/Storable/Mutable.hs b/Data/Vector/Storable/Mutable.hs
312+index 44688b0..c1c1ac1 100644
313+--- a/Data/Vector/Storable/Mutable.hs
314++++ b/Data/Vector/Storable/Mutable.hs
215315@@ -1,4 +1,4 @@
216316-{-# LANGUAGE CPP, DeriveDataTypeable, MultiParamTypeClasses, FlexibleInstances, ScopedTypeVariables #-}
217317+{-# LANGUAGE CPP, DeriveDataTypeable, FlexibleInstances, MagicHash, MultiParamTypeClasses, ScopedTypeVariables #-}
218318
219319 -- |
220320 -- Module : Data.Vector.Storable.Mutable
221−@@ -65,8 +65,13 @@
321+@@ -65,8 +65,13 @@ import Data.Vector.Storable.Internal
222322 import Foreign.Storable
223323 import Foreign.ForeignPtr
224324
@@ -234,7 +334,7 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Storable/Mutable.hs ghc-pac
234334 #endif
235335
236336 import Foreign.Ptr
237−@@ -201,11 +206,26 @@
337+@@ -201,11 +206,26 @@ storableSetAsPrim n fp x y = withForeignPtr fp $ \(Ptr p) -> do
238338 {-# INLINE mallocVector #-}
239339 mallocVector :: Storable a => Int -> IO (ForeignPtr a)
240340 mallocVector =
@@ -266,7 +366,7 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Storable/Mutable.hs ghc-pac
266366 #else
267367 mallocForeignPtrArray
268368 #endif
269−@@ -293,7 +313,7 @@
369+@@ -293,7 +313,7 @@ new :: (PrimMonad m, Storable a) => Int -> m (MVector (PrimState m) a)
270370 {-# INLINE new #-}
271371 new = G.new
272372
@@ -275,7 +375,7 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Storable/Mutable.hs ghc-pac
275375 unsafeNew :: (PrimMonad m, Storable a) => Int -> m (MVector (PrimState m) a)
276376 {-# INLINE unsafeNew #-}
277377 unsafeNew = G.unsafeNew
278−@@ -322,14 +342,14 @@
378+@@ -322,14 +342,14 @@ clone = G.clone
279379 -- | Grow a vector by the given number of elements. The number must be
280380 -- positive.
281381 grow :: (PrimMonad m, Storable a)
@@ -292,7 +392,7 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Storable/Mutable.hs ghc-pac
292392 {-# INLINE unsafeGrow #-}
293393 unsafeGrow = G.unsafeGrow
294394
295−@@ -401,7 +421,7 @@
395+@@ -401,7 +421,7 @@ set = G.set
296396 -- | Copy a vector. The two vectors must have the same length and may not
297397 -- overlap.
298398 copy :: (PrimMonad m, Storable a)
@@ -301,7 +401,7 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Storable/Mutable.hs ghc-pac
301401 {-# INLINE copy #-}
302402 copy = G.copy
303403
304−@@ -422,7 +442,7 @@
404+@@ -422,7 +442,7 @@ unsafeCopy = G.unsafeCopy
305405 -- copied to a temporary vector and then the temporary vector was copied
306406 -- to the target vector.
307407 move :: (PrimMonad m, Storable a)
@@ -310,7 +410,7 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Storable/Mutable.hs ghc-pac
310410 {-# INLINE move #-}
311411 move = G.move
312412
313−@@ -434,9 +454,9 @@
413+@@ -434,9 +454,9 @@ move = G.move
314414 -- copied to a temporary vector and then the temporary vector was copied
315415 -- to the target vector.
316416 unsafeMove :: (PrimMonad m, Storable a)
@@ -323,11 +423,12 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Storable/Mutable.hs ghc-pac
323423 {-# INLINE unsafeMove #-}
324424 unsafeMove = G.unsafeMove
325425
326−diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Storable.hs ghc-package-vector-0.11.0.0/Data/Vector/Storable.hs
327−--- hackage-package-vector-0.11.0.0/Data/Vector/Storable.hs 2015-07-13 12:26:16.000000000 +0800
328−+++ ghc-package-vector-0.11.0.0/Data/Vector/Storable.hs 2001-09-09 09:46:40.000000000 +0800
329−@@ -169,7 +169,9 @@
330− import Data.Data ( Data(..) )
426+diff --git a/Data/Vector/Unboxed.hs b/Data/Vector/Unboxed.hs
427+index 1b2062f..1d5f121 100644
428+--- a/Data/Vector/Unboxed.hs
429++++ b/Data/Vector/Unboxed.hs
430+@@ -186,7 +186,9 @@ import Prelude hiding ( length, null,
431+
331432 import Text.Read ( Read(..), readListPrecDefault )
332433
333434+#if !MIN_VERSION_base(4,8,0)
@@ -335,20 +436,21 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Storable.hs ghc-package-vec
335436+#endif
336437
337438 #if __GLASGOW_HASKELL__ >= 708
338− import qualified GHC.Exts as Exts
339−@@ -783,7 +785,7 @@
340− mapM_ = G.mapM_
439+ import qualified GHC.Exts as Exts (IsList(..))
440+@@ -820,7 +822,7 @@ imapM_ :: (Monad m, Unbox a) => (Int -> a -> m b) -> Vector a -> m ()
441+ imapM_ = G.imapM_
341442
342443 -- | /O(n)/ Apply the monadic action to all elements of the vector, yielding a
343444--- vector of results. Equvalent to @flip 'mapM'@.
344445+-- vector of results. Equivalent to @flip 'mapM'@.
345− forM :: (Monad m, Storable a, Storable b) => Vector a -> (a -> m b) -> m (Vector b)
446+ forM :: (Monad m, Unbox a, Unbox b) => Vector a -> (a -> m b) -> m (Vector b)
346447 {-# INLINE forM #-}
347448 forM = G.forM
348−diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Unboxed/Base.hs ghc-package-vector-0.11.0.0/Data/Vector/Unboxed/Base.hs
349−--- hackage-package-vector-0.11.0.0/Data/Vector/Unboxed/Base.hs 2015-07-13 12:26:16.000000000 +0800
350−+++ ghc-package-vector-0.11.0.0/Data/Vector/Unboxed/Base.hs 2001-09-09 09:46:40.000000000 +0800
351−@@ -30,10 +30,14 @@
449+diff --git a/Data/Vector/Unboxed/Base.hs b/Data/Vector/Unboxed/Base.hs
450+index ee41966..56c6735 100644
451+--- a/Data/Vector/Unboxed/Base.hs
452++++ b/Data/Vector/Unboxed/Base.hs
453+@@ -30,10 +30,14 @@ import Control.DeepSeq ( NFData(rnf) )
352454 import Control.Monad.Primitive
353455 import Control.Monad ( liftM )
354456
@@ -364,10 +466,11 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Unboxed/Base.hs ghc-package
364466 #if __GLASGOW_HASKELL__ >= 707
365467 import Data.Typeable ( Typeable )
366468 #else
367−diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Unboxed/Mutable.hs ghc-package-vector-0.11.0.0/Data/Vector/Unboxed/Mutable.hs
368−--- hackage-package-vector-0.11.0.0/Data/Vector/Unboxed/Mutable.hs 2015-07-13 12:26:16.000000000 +0800
369−+++ ghc-package-vector-0.11.0.0/Data/Vector/Unboxed/Mutable.hs 2001-09-09 09:46:40.000000000 +0800
370−@@ -149,7 +149,7 @@
469+diff --git a/Data/Vector/Unboxed/Mutable.hs b/Data/Vector/Unboxed/Mutable.hs
470+index 78e473e..a94c07f 100644
471+--- a/Data/Vector/Unboxed/Mutable.hs
472++++ b/Data/Vector/Unboxed/Mutable.hs
473+@@ -149,7 +149,7 @@ new :: (PrimMonad m, Unbox a) => Int -> m (MVector (PrimState m) a)
371474 {-# INLINE new #-}
372475 new = G.new
373476
@@ -376,106 +479,20 @@ diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Unboxed/Mutable.hs ghc-pack
376479 unsafeNew :: (PrimMonad m, Unbox a) => Int -> m (MVector (PrimState m) a)
377480 {-# INLINE unsafeNew #-}
378481 unsafeNew = G.unsafeNew
379−diff -ur hackage-package-vector-0.11.0.0/Data/Vector/Unboxed.hs ghc-package-vector-0.11.0.0/Data/Vector/Unboxed.hs
380−--- hackage-package-vector-0.11.0.0/Data/Vector/Unboxed.hs 2015-07-13 12:26:16.000000000 +0800
381−+++ ghc-package-vector-0.11.0.0/Data/Vector/Unboxed.hs 2001-09-09 09:46:40.000000000 +0800
382−@@ -186,7 +186,9 @@
383−
384− import Text.Read ( Read(..), readListPrecDefault )
385−
386−+#if !MIN_VERSION_base(4,8,0)
387− import Data.Monoid ( Monoid(..) )
388−+#endif
389−
390− #if __GLASGOW_HASKELL__ >= 708
391− import qualified GHC.Exts as Exts (IsList(..))
392−@@ -820,7 +822,7 @@
393− imapM_ = G.imapM_
394−
395− -- | /O(n)/ Apply the monadic action to all elements of the vector, yielding a
396−--- vector of results. Equvalent to @flip 'mapM'@.
397−+-- vector of results. Equivalent to @flip 'mapM'@.
398− forM :: (Monad m, Unbox a, Unbox b) => Vector a -> (a -> m b) -> m (Vector b)
399− {-# INLINE forM #-}
400− forM = G.forM
401−diff -ur hackage-package-vector-0.11.0.0/Data/Vector.hs ghc-package-vector-0.11.0.0/Data/Vector.hs
402−--- hackage-package-vector-0.11.0.0/Data/Vector.hs 2015-07-13 12:26:16.000000000 +0800
403−+++ ghc-package-vector-0.11.0.0/Data/Vector.hs 2001-09-09 09:46:40.000000000 +0800
404−@@ -150,7 +150,7 @@
405− -- * Conversions
406−
407− -- ** Lists
408−- toList, fromList, fromListN,
409−+ toList, Data.Vector.fromList, Data.Vector.fromListN,
410−
411− -- ** Other vector types
412− G.convert,
413−@@ -187,11 +187,14 @@
414− import Data.Data ( Data(..) )
415− import Text.Read ( Read(..), readListPrecDefault )
416−
417−-import Data.Monoid ( Monoid(..) )
418− import qualified Control.Applicative as Applicative
419− import qualified Data.Foldable as Foldable
420− import qualified Data.Traversable as Traversable
421−
422−+#if !MIN_VERSION_base(4,8,0)
423−+import Data.Monoid ( Monoid(..) )
424−+#endif
425−+
426− #if __GLASGOW_HASKELL__ >= 708
427− import qualified GHC.Exts as Exts (IsList(..))
428− #endif
429−@@ -220,8 +223,8 @@
430−
431− instance Exts.IsList (Vector a) where
432− type Item (Vector a) = a
433−- fromList = fromList
434−- fromListN = fromListN
435−+ fromList = Data.Vector.fromList
436−+ fromListN = Data.Vector.fromListN
437− toList = toList
438− #endif
439−
440−@@ -297,7 +300,7 @@
441−
442− instance Monad Vector where
443− {-# INLINE return #-}
444−- return = singleton
445−+ return = Applicative.pure
446−
447− {-# INLINE (>>=) #-}
448− (>>=) = flip concatMap
449−@@ -341,7 +344,7 @@
450−
451− instance Traversable.Traversable Vector where
452− {-# INLINE traverse #-}
453−- traverse f xs = fromList Applicative.<$> Traversable.traverse f (toList xs)
454−+ traverse f xs = Data.Vector.fromList Applicative.<$> Traversable.traverse f (toList xs)
455−
456− {-# INLINE mapM #-}
457− mapM = mapM
458−@@ -917,7 +920,7 @@
459− imapM_ = G.imapM_
460−
461− -- | /O(n)/ Apply the monadic action to all elements of the vector, yielding a
462−--- vector of results. Equvalent to @flip 'mapM'@.
463−+-- vector of results. Equivalent to @flip 'mapM'@.
464− forM :: Monad m => Vector a -> (a -> m b) -> m (Vector b)
465− {-# INLINE forM #-}
466− forM = G.forM
467−diff -ur hackage-package-vector-0.11.0.0/include/vector.h ghc-package-vector-0.11.0.0/include/vector.h
468−--- hackage-package-vector-0.11.0.0/include/vector.h 2015-07-13 12:26:16.000000000 +0800
469−+++ ghc-package-vector-0.11.0.0/include/vector.h 2001-09-09 09:46:40.000000000 +0800
470−@@ -18,4 +18,3 @@
482+diff --git a/include/vector.h b/include/vector.h
483+index df9200c..1568bb2 100644
484+--- a/include/vector.h
485++++ b/include/vector.h
486+@@ -18,4 +18,3 @@ import qualified Data.Vector.Internal.Check as Ck
471487
472488 #define PHASE_STREAM Please use "PHASE_FUSED" instead
473489 #define INLINE_STREAM Please use "INLINE_FUSED" instead
474490-
475−diff -ur hackage-package-vector-0.11.0.0/tests/Tests/Vector.hs ghc-package-vector-0.11.0.0/tests/Tests/Vector.hs
476−--- hackage-package-vector-0.11.0.0/tests/Tests/Vector.hs 2015-07-13 12:26:16.000000000 +0800
477−+++ ghc-package-vector-0.11.0.0/tests/Tests/Vector.hs 2001-09-09 09:46:40.000000000 +0800
478−@@ -643,6 +643,7 @@
491+diff --git a/tests/Tests/Vector.hs b/tests/Tests/Vector.hs
492+index 9b0a093..e39d24f 100644
493+--- a/tests/Tests/Vector.hs
494++++ b/tests/Tests/Vector.hs
495+@@ -643,6 +643,7 @@ tests = [
479496 testGroup "Data.Vector.Storable.Vector (Double)" (testNumericStorableVector (undefined :: Data.Vector.Storable.Vector Double)),
480497
481498 testGroup "Data.Vector.Unboxed.Vector ()" (testUnitUnboxedVector (undefined :: Data.Vector.Unboxed.Vector ())),
@@ -483,10 +500,11 @@ diff -ur hackage-package-vector-0.11.0.0/tests/Tests/Vector.hs ghc-package-vecto
483500 testGroup "Data.Vector.Unboxed.Vector (Int)" (testNumericUnboxedVector (undefined :: Data.Vector.Unboxed.Vector Int)),
484501 testGroup "Data.Vector.Unboxed.Vector (Double)" (testNumericUnboxedVector (undefined :: Data.Vector.Unboxed.Vector Double)),
485502 testGroup "Data.Vector.Unboxed.Vector (Int,Bool)" (testTupleUnboxedVector (undefined :: Data.Vector.Unboxed.Vector (Int,Bool))),
486−diff -ur hackage-package-vector-0.11.0.0/vector.cabal ghc-package-vector-0.11.0.0/vector.cabal
487−--- hackage-package-vector-0.11.0.0/vector.cabal 2015-07-13 12:26:16.000000000 +0800
488−+++ ghc-package-vector-0.11.0.0/vector.cabal 2001-09-09 09:46:40.000000000 +0800
489−@@ -38,6 +38,7 @@
503+diff --git a/vector.cabal b/vector.cabal
504+index ffc5099..d962c72 100644
505+--- a/vector.cabal
506++++ b/vector.cabal
507+@@ -38,6 +38,7 @@ Cabal-Version: >=1.10
490508 Build-Type: Simple
491509
492510 Extra-Source-Files:
@@ -494,7 +512,7 @@ diff -ur hackage-package-vector-0.11.0.0/vector.cabal ghc-package-vector-0.11.0.
494512 README.md
495513 tests/LICENSE
496514 tests/Setup.hs
497−@@ -137,9 +138,9 @@
515+@@ -137,9 +138,9 @@ Library
498516 Install-Includes:
499517 vector.h
500518