1diff --git a/Data/Array.hs b/Data/Array.hs
2index a65e2fc..6b632fd 100644
5@@ -54,8 +54,6 @@ module Data.Array (
9-import Data.Typeable ()
11 import GHC.Arr -- Most of the hard work is done here
14diff --git a/Data/Array/Base.hs b/Data/Array/Base.hs
15index 8cc319c..80e91ea 100644
16--- a/Data/Array/Base.hs
17+++ b/Data/Array/Base.hs
19-{-# LANGUAGE BangPatterns, CPP, RankNTypes, MagicHash, UnboxedTuples, MultiParamTypeClasses, FlexibleInstances, FlexibleContexts, DeriveDataTypeable, UnliftedFFITypes #-}
20-{-# LANGUAGE RoleAnnotations #-}
27+ , MultiParamTypeClasses
33 {-# OPTIONS_HADDOCK hide #-}
35 -----------------------------------------------------------------------------
36@@ -39,7 +49,6 @@ import GHC.Word ( Word8(..), Word16(..), Word32(..), Word64(..) )
37 import GHC.IO ( stToIO )
38 import GHC.IOArray ( IOArray(..),
39 newIOArray, unsafeReadIOArray, unsafeWriteIOArray )
44@@ -398,7 +407,6 @@ instance IArray Arr.Array e where
45 -- "Data.Array.Unboxed" instead of "Data.Array").
47 data UArray i e = UArray !i !i !Int ByteArray#
49 -- There are class-based invariants on both parameters. See also #9220.
50 type role UArray nominal nominal
52@@ -979,7 +987,6 @@ instance MArray (STArray s) e (Lazy.ST s) where
53 -- don\'t use 'STUArray' if you require the non-strictness that
54 -- 'STArray' provides.
55 data STUArray s i e = STUArray !i !i !Int (MutableByteArray# s)
57 -- The "ST" parameter must be nominal for the safety of the ST trick.
58 -- The other parameters have class constraints. See also #9220.
59 type role STUArray nominal nominal nominal
60@@ -1370,11 +1377,7 @@ freeze marr = do
61 -- use the safe array creation function here.
62 return (listArray (l,u) es)
64-#if __GLASGOW_HASKELL__ >= 711
65 freezeSTUArray :: STUArray s i e -> ST s (UArray i e)
67-freezeSTUArray :: Ix i => STUArray s i e -> ST s (UArray i e)
69 freezeSTUArray (STUArray l u n marr#) = ST $ \s1# ->
70 case sizeofMutableByteArray# marr# of { n# ->
71 case newByteArray# n# s1# of { (# s2#, marr'# #) ->
72@@ -1449,11 +1452,7 @@ thaw arr = case bounds arr of
76-#if __GLASGOW_HASKELL__ >= 711
77 thawSTUArray :: UArray i e -> ST s (STUArray s i e)
79-thawSTUArray :: Ix i => UArray i e -> ST s (STUArray s i e)
81 thawSTUArray (UArray l u n arr#) = ST $ \s1# ->
82 case sizeofByteArray# arr# of { n# ->
83 case newByteArray# n# s1# of { (# s2#, marr# #) ->
84@@ -1513,11 +1512,7 @@ unsafeThaw :: (Ix i, IArray a e, MArray b e m) => a i e -> m (b i e)
87 {-# INLINE unsafeThawSTUArray #-}
88-#if __GLASGOW_HASKELL__ >= 711
89 unsafeThawSTUArray :: UArray i e -> ST s (STUArray s i e)
91-unsafeThawSTUArray :: Ix i => UArray i e -> ST s (STUArray s i e)
93 unsafeThawSTUArray (UArray l u n marr#) =
94 return (STUArray l u n (unsafeCoerce# marr#))
96@@ -1527,11 +1522,7 @@ unsafeThawSTUArray (UArray l u n marr#) =
99 {-# INLINE unsafeThawIOArray #-}
100-#if __GLASGOW_HASKELL__ >= 711
101 unsafeThawIOArray :: Arr.Array ix e -> IO (IOArray ix e)
103-unsafeThawIOArray :: Ix ix => Arr.Array ix e -> IO (IOArray ix e)
105 unsafeThawIOArray arr = stToIO $ do
106 marr <- ArrST.unsafeThawSTArray arr
107 return (IOArray marr)
108@@ -1540,11 +1531,7 @@ unsafeThawIOArray arr = stToIO $ do
109 "unsafeThaw/IOArray" unsafeThaw = unsafeThawIOArray
112-#if __GLASGOW_HASKELL__ >= 711
113 thawIOArray :: Arr.Array ix e -> IO (IOArray ix e)
115-thawIOArray :: Ix ix => Arr.Array ix e -> IO (IOArray ix e)
117 thawIOArray arr = stToIO $ do
118 marr <- ArrST.thawSTArray arr
119 return (IOArray marr)
120@@ -1553,11 +1540,7 @@ thawIOArray arr = stToIO $ do
121 "thaw/IOArray" thaw = thawIOArray
124-#if __GLASGOW_HASKELL__ >= 711
125 freezeIOArray :: IOArray ix e -> IO (Arr.Array ix e)
127-freezeIOArray :: Ix ix => IOArray ix e -> IO (Arr.Array ix e)
129 freezeIOArray (IOArray marr) = stToIO (ArrST.freezeSTArray marr)
132@@ -1565,11 +1548,7 @@ freezeIOArray (IOArray marr) = stToIO (ArrST.freezeSTArray marr)
135 {-# INLINE unsafeFreezeIOArray #-}
136-#if __GLASGOW_HASKELL__ >= 711
137 unsafeFreezeIOArray :: IOArray ix e -> IO (Arr.Array ix e)
139-unsafeFreezeIOArray :: Ix ix => IOArray ix e -> IO (Arr.Array ix e)
141 unsafeFreezeIOArray (IOArray marr) = stToIO (ArrST.unsafeFreezeSTArray marr)
144diff --git a/Data/Array/IO/Internals.hs b/Data/Array/IO/Internals.hs
145index c9738e9..2b12e36 100644
146--- a/Data/Array/IO/Internals.hs
147+++ b/Data/Array/IO/Internals.hs
149-{-# LANGUAGE DeriveDataTypeable, FlexibleInstances, MultiParamTypeClasses,
151-{-# LANGUAGE RoleAnnotations #-}
154+ , MultiParamTypeClasses
158 {-# OPTIONS_HADDOCK hide #-}
159 -----------------------------------------------------------------------------
160@@ -27,15 +29,11 @@ module Data.Array.IO.Internals (
166 import Control.Monad.ST ( RealWorld, stToIO )
167 import Foreign.Ptr ( Ptr, FunPtr )
168 import Foreign.StablePtr ( StablePtr )
170-#if __GLASGOW_HASKELL__ < 711
173 import Data.Array.Base
175 import GHC.IOArray (IOArray(..))
176@@ -52,7 +50,6 @@ import GHC.IOArray (IOArray(..))
177 -- are supported: see "Data.Array.MArray" for a list of instances.
179 newtype IOUArray i e = IOUArray (STUArray RealWorld i e)
181 -- Both parameters have class-based invariants. See also #9220.
182 type role IOUArray nominal nominal
184@@ -374,11 +371,7 @@ castIOUArray (IOUArray marr) = stToIO $ do
185 return (IOUArray marr')
187 {-# INLINE unsafeThawIOUArray #-}
188-#if __GLASGOW_HASKELL__ >= 711
189 unsafeThawIOUArray :: UArray ix e -> IO (IOUArray ix e)
191-unsafeThawIOUArray :: Ix ix => UArray ix e -> IO (IOUArray ix e)
193 unsafeThawIOUArray arr = stToIO $ do
194 marr <- unsafeThawSTUArray arr
195 return (IOUArray marr)
196@@ -387,11 +380,7 @@ unsafeThawIOUArray arr = stToIO $ do
197 "unsafeThaw/IOUArray" unsafeThaw = unsafeThawIOUArray
200-#if __GLASGOW_HASKELL__ >= 711
201 thawIOUArray :: UArray ix e -> IO (IOUArray ix e)
203-thawIOUArray :: Ix ix => UArray ix e -> IO (IOUArray ix e)
205 thawIOUArray arr = stToIO $ do
206 marr <- thawSTUArray arr
207 return (IOUArray marr)
208@@ -401,22 +390,14 @@ thawIOUArray arr = stToIO $ do
211 {-# INLINE unsafeFreezeIOUArray #-}
212-#if __GLASGOW_HASKELL__ >= 711
213 unsafeFreezeIOUArray :: IOUArray ix e -> IO (UArray ix e)
215-unsafeFreezeIOUArray :: Ix ix => IOUArray ix e -> IO (UArray ix e)
217 unsafeFreezeIOUArray (IOUArray marr) = stToIO (unsafeFreezeSTUArray marr)
220 "unsafeFreeze/IOUArray" unsafeFreeze = unsafeFreezeIOUArray
223-#if __GLASGOW_HASKELL__ >= 711
224 freezeIOUArray :: IOUArray ix e -> IO (UArray ix e)
226-freezeIOUArray :: Ix ix => IOUArray ix e -> IO (UArray ix e)
228 freezeIOUArray (IOUArray marr) = stToIO (freezeSTUArray marr)
231diff --git a/Data/Array/ST.hs b/Data/Array/ST.hs
232index 0a8ff0d..dccc4dc 100644
233--- a/Data/Array/ST.hs
234+++ b/Data/Array/ST.hs
237 {-# LANGUAGE RankNTypes #-}
238 -----------------------------------------------------------------------------
240@@ -38,11 +37,7 @@ import GHC.Arr ( STArray, Array, unsafeFreezeSTArray )
241 -- the array before returning it - it uses 'unsafeFreeze' internally, but
242 -- this wrapper is a safe interface to that function.
244-#if __GLASGOW_HASKELL__ >= 711
245 runSTArray :: (forall s . ST s (STArray s i e)) -> Array i e
247-runSTArray :: Ix i => (forall s . ST s (STArray s i e)) -> Array i e
249 runSTArray st = runST (st >>= unsafeFreezeSTArray)
251 -- | A safe way to create and work with an unboxed mutable array before
252@@ -51,11 +46,7 @@ runSTArray st = runST (st >>= unsafeFreezeSTArray)
253 -- 'unsafeFreeze' internally, but this wrapper is a safe interface to
256-#if __GLASGOW_HASKELL__ >= 711
257 runSTUArray :: (forall s . ST s (STUArray s i e)) -> UArray i e
259-runSTUArray :: Ix i => (forall s . ST s (STUArray s i e)) -> UArray i e
261 runSTUArray st = runST (st >>= unsafeFreezeSTUArray)
264diff --git a/array.cabal b/array.cabal
265index 1a71bab..928a7f6 100644
268@@ -9,7 +9,7 @@ synopsis: Mutable and immutable arrays
269 category: Data Structures
271 cabal-version: >=1.10
272-tested-with: GHC==8.2.1, GHC==8.0.2, GHC==7.10.3, GHC==7.8.4
273+tested-with: GHC==8.4.2, GHC==8.2.1, GHC==8.0.2
275 In addition to providing the "Data.Array" module
276 <http://www.haskell.org/onlinereport/haskell2010/haskellch14.html as specified in the Haskell 2010 Language Report>,
277@@ -28,7 +28,6 @@ library
285@@ -37,7 +36,7 @@ library
289- build-depends: base >= 4.7 && < 4.11
290+ build-depends: base >= 4.9 && < 4.13
294diff --git a/changelog.md b/changelog.md
295index e537cd0..1a480a4 100644
299 # Changelog for [`array` package](http://hackage.haskell.org/package/array)
303+ * Bundled with GHC 8.6.1
304+ * Drop support for GHC versions prior to GHC 8.0
306 ## 0.5.2.0 *Jul 2017*
308 * Bundled with GHC 8.2.1
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list