@@ -163,17 +163,17 @@ toList arr = loop 0
163163
164164 len = length arr
165165 loop i | i == len = []
166− loop i = getIndexUnsafe arr i : loop (i + 1)
166+ loop i = getIndexUnsafe i arr : loop (i + 1)
167167
168168{-# INLINE_NORMAL read #-}
169169read :: Monad m => Array a -> Stream m a
170170read arr@Array{..} =
171− D.map (getIndexUnsafe arr) $ D.enumerateFromToIntegral 0 (arrLen - 1)
171+ D.map (`getIndexUnsafe` arr) $ D.enumerateFromToIntegral 0 (arrLen - 1)
172172
173173{-# INLINE_NORMAL readRev #-}
174174readRev :: Monad m => Array a -> Stream m a
175175readRev arr@Array{..} =
176− D.map (getIndexUnsafe arr)
176+ D.map (`getIndexUnsafe` arr)
177177 $ D.enumerateFromThenToIntegral (arrLen - 1) (arrLen - 2) 0
178178
179179-------------------------------------------------------------------------------
@@ -205,8 +205,8 @@ streamFold f arr = f (read arr)
205205--
206206-- @since 0.8.0
207207{-# INLINE getIndexUnsafe #-}
208−getIndexUnsafe :: Array a -> Int -> a
209−getIndexUnsafe arr i =
208+getIndexUnsafe :: Int -> Array a -> a
209+getIndexUnsafe i arr =
210210 unsafePerformIO $ MArray.getIndexUnsafe i (unsafeThaw arr)
211211
212212{-# INLINE writeLastN #-}
@@ -268,9 +268,9 @@ strip p arr =
268268 getIndexR idx
269269 | idx < 0 = idx
270270 | otherwise =
271− if p (getIndexUnsafe arr idx) then getIndexR (idx - 1) else idx
271+ if p (getIndexUnsafe idx arr) then getIndexR (idx - 1) else idx
272272
273− getIndexL idx = if p (getIndexUnsafe arr idx)
273+ getIndexL idx = if p (getIndexUnsafe idx arr)
274274 then getIndexL (idx + 1)
275275 else idx
276276
@@ -289,8 +289,8 @@ instance Eq a => Eq (Array a) where
289289 loop i
290290 | i < 0 = True
291291 | otherwise =
292− let v1 = getIndexUnsafe a1 i
293− v2 = getIndexUnsafe a2 i
292+ let v1 = getIndexUnsafe i a1
293+ v2 = getIndexUnsafe i a2
294294 in v1 == v2 && loop (i - 1)
295295
296296instance Ord a => Ord (Array a) where
@@ -308,8 +308,8 @@ instance Ord a => Ord (Array a) where
308308 loop i
309309 | i >= lenA1 = EQ
310310 | otherwise =
311− let v1 = getIndexUnsafe a1 i
312− v2 = getIndexUnsafe a2 i
311+ let v1 = getIndexUnsafe i a1
312+ v2 = getIndexUnsafe i a2
313313 in case compare v1 v2 of
314314 LT -> LT
315315 GT -> GT