@@ -53,12 +53,7 @@ import qualified Data.Traversable as Traversable
53
53
import Control.Applicative (Applicative )
54
54
#endif
55
55
import Control.DeepSeq
56
- -- GHC 7.7 exports toList/fromList from GHC.Exts
57
- -- In order to avoid warnings on previous GHC versions, we provide
58
- -- an explicit import list instead of only hiding the offending symbols
59
- import GHC.Exts (Array #, Int (.. ), newArray #, readArray #, writeArray #,
60
- indexArray #, unsafeFreezeArray #, unsafeThawArray #,
61
- MutableArray #)
56
+ import GHC.Exts (Int (.. ))
62
57
import GHC.ST (ST (.. ))
63
58
64
59
#if __GLASGOW_HASKELL__ >= 709
@@ -67,17 +62,46 @@ import Prelude hiding (filter, foldr, length, map, read, traverse)
67
62
import Prelude hiding (filter , foldr , length , map , read )
68
63
#endif
69
64
65
+ #if __GLASGOW_HASKELL__ >= 710
66
+ import GHC.Exts (SmallArray #, newSmallArray #, readSmallArray #, writeSmallArray #,
67
+ indexSmallArray #, unsafeFreezeSmallArray #, unsafeThawSmallArray #,
68
+ SmallMutableArray #, sizeofSmallArray #, copySmallArray #, thawSmallArray #,
69
+ sizeofSmallMutableArray #, copySmallMutableArray #)
70
+
71
+ #else
72
+ import GHC.Exts (Array #, newArray #, readArray #, writeArray #,
73
+ indexArray #, unsafeFreezeArray #, unsafeThawArray #,
74
+ MutableArray #)
70
75
#if __GLASGOW_HASKELL__ >= 702
71
76
import GHC.Exts (sizeofArray #, copyArray #, thawArray #, sizeofMutableArray #,
72
77
copyMutableArray #)
73
78
#endif
79
+ #endif
74
80
75
81
#if defined(ASSERTS)
76
82
import qualified Prelude
77
83
#endif
78
84
79
85
import Data.HashMap.Unsafe (runST )
80
86
87
+
88
+ #if __GLASGOW_HASKELL__ >= 710
89
+ type Array # a = SmallArray # a
90
+ type MutableArray # a = SmallMutableArray # a
91
+
92
+ newArray# = newSmallArray#
93
+ readArray# = readSmallArray#
94
+ writeArray# = writeSmallArray#
95
+ indexArray# = indexSmallArray#
96
+ unsafeFreezeArray# = unsafeFreezeSmallArray#
97
+ unsafeThawArray# = unsafeThawSmallArray#
98
+ sizeofArray# = sizeofSmallArray#
99
+ copyArray# = copySmallArray#
100
+ thawArray# = thawSmallArray#
101
+ sizeofMutableArray# = sizeofSmallMutableArray#
102
+ copyMutableArray# = copySmallMutableArray#
103
+ #endif
104
+
81
105
------------------------------------------------------------------------
82
106
83
107
#if defined(ASSERTS)
0 commit comments