Skip to content

Commit 7df15a2

Browse files
committed
D.HM.I.Array: Use unique names for inner go functions
Context: #536
1 parent 478bb60 commit 7df15a2

File tree

1 file changed

+52
-52
lines changed

1 file changed

+52
-52
lines changed

Data/HashMap/Internal/Array.hs

Lines changed: 52 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,13 @@ unsafeSameArray (Array xs) (Array ys) =
144144
sameArray1 :: (a -> b -> Bool) -> Array a -> Array b -> Bool
145145
sameArray1 eq !xs0 !ys0
146146
| lenxs /= lenys = False
147-
| otherwise = go 0 xs0 ys0
147+
| otherwise = go_sameArray1 0 xs0 ys0
148148
where
149-
go !k !xs !ys
149+
go_sameArray1 !k !xs !ys
150150
| k == lenxs = True
151151
| (# x #) <- index# xs k
152152
, (# y #) <- index# ys k
153-
= eq x y && go (k + 1) xs ys
153+
= eq x y && go_sameArray1 (k + 1) xs ys
154154

155155
!lenxs = length xs0
156156
!lenys = length ys0
@@ -182,13 +182,13 @@ instance NFData a => NFData (Array a) where
182182
rnf = rnfArray
183183

184184
rnfArray :: NFData a => Array a -> ()
185-
rnfArray ary0 = go ary0 n0 0
185+
rnfArray ary0 = go_rnfArray ary0 n0 0
186186
where
187187
n0 = length ary0
188-
go !ary !n !i
188+
go_rnfArray !ary !n !i
189189
| i >= n = ()
190190
| (# x #) <- index# ary i
191-
= rnf x `seq` go ary n (i+1)
191+
= rnf x `seq` go_rnfArray ary n (i+1)
192192
-- We use index# just in case GHC can't see that the
193193
-- relevant rnf is strict, or in case it actually isn't.
194194
{-# INLINE rnfArray #-}
@@ -198,13 +198,13 @@ instance NFData1 Array where
198198
liftRnf = liftRnfArray
199199

200200
liftRnfArray :: (a -> ()) -> Array a -> ()
201-
liftRnfArray rnf0 ary0 = go ary0 n0 0
201+
liftRnfArray rnf0 ary0 = go_liftRnfArray ary0 n0 0
202202
where
203203
n0 = length ary0
204-
go !ary !n !i
204+
go_liftRnfArray !ary !n !i
205205
| i >= n = ()
206206
| (# x #) <- index# ary i
207-
= rnf0 x `seq` go ary n (i+1)
207+
= rnf0 x `seq` go_liftRnfArray ary n (i+1)
208208
{-# INLINE liftRnfArray #-}
209209

210210
-- | Create a new mutable array of specified size, in the specified
@@ -380,41 +380,41 @@ unsafeUpdateM ary idx b =
380380
{-# INLINE unsafeUpdateM #-}
381381

382382
foldl' :: (b -> a -> b) -> b -> Array a -> b
383-
foldl' f = \ z0 ary0 -> go ary0 (length ary0) 0 z0
383+
foldl' f = \ z0 ary0 -> go_foldl' ary0 (length ary0) 0 z0
384384
where
385-
go ary n i !z
385+
go_foldl' ary n i !z
386386
| i >= n = z
387387
| otherwise
388388
= case index# ary i of
389-
(# x #) -> go ary n (i+1) (f z x)
389+
(# x #) -> go_foldl' ary n (i+1) (f z x)
390390
{-# INLINE foldl' #-}
391391

392392
foldr' :: (a -> b -> b) -> b -> Array a -> b
393-
foldr' f = \ z0 ary0 -> go ary0 (length ary0 - 1) z0
393+
foldr' f = \ z0 ary0 -> go_foldr' ary0 (length ary0 - 1) z0
394394
where
395-
go !_ary (-1) z = z
396-
go !ary i !z
395+
go_foldr' !_ary (-1) z = z
396+
go_foldr' !ary i !z
397397
| (# x #) <- index# ary i
398-
= go ary (i - 1) (f x z)
398+
= go_foldr' ary (i - 1) (f x z)
399399
{-# INLINE foldr' #-}
400400

401401
foldr :: (a -> b -> b) -> b -> Array a -> b
402-
foldr f = \ z0 ary0 -> go ary0 (length ary0) 0 z0
402+
foldr f = \ z0 ary0 -> go_foldr ary0 (length ary0) 0 z0
403403
where
404-
go ary n i z
404+
go_foldr ary n i z
405405
| i >= n = z
406406
| otherwise
407407
= case index# ary i of
408-
(# x #) -> f x (go ary n (i+1) z)
408+
(# x #) -> f x (go_foldr ary n (i+1) z)
409409
{-# INLINE foldr #-}
410410

411411
foldl :: (b -> a -> b) -> b -> Array a -> b
412-
foldl f = \ z0 ary0 -> go ary0 (length ary0 - 1) z0
412+
foldl f = \ z0 ary0 -> go_foldl ary0 (length ary0 - 1) z0
413413
where
414-
go _ary (-1) z = z
415-
go ary i z
414+
go_foldl _ary (-1) z = z
415+
go_foldl ary i z
416416
| (# x #) <- index# ary i
417-
= f (go ary (i - 1) z) x
417+
= f (go_foldl ary (i - 1) z) x
418418
{-# INLINE foldl #-}
419419

420420
-- We go to a bit of trouble here to avoid appending an extra mempty.
@@ -426,9 +426,9 @@ foldMap f = \ary0 -> case length ary0 of
426426
0 -> mempty
427427
len ->
428428
let !lst = len - 1
429-
go i | (# x #) <- index# ary0 i, let fx = f x =
430-
if i == lst then fx else fx `mappend` go (i + 1)
431-
in go 0
429+
go_foldMap i | (# x #) <- index# ary0 i, let fx = f x =
430+
if i == lst then fx else fx `mappend` go_foldMap (i + 1)
431+
in go_foldMap 0
432432
{-# INLINE foldMap #-}
433433

434434
-- | Verifies that a predicate holds for all elements of an array.
@@ -470,15 +470,15 @@ map f = \ ary ->
470470
let !n = length ary
471471
in run $ do
472472
mary <- new_ n
473-
go ary mary 0 n
473+
go_map ary mary 0 n
474474
return mary
475475
where
476-
go ary mary i n
476+
go_map ary mary i n
477477
| i >= n = return ()
478478
| otherwise = do
479479
x <- indexM ary i
480480
write mary i $ f x
481-
go ary mary (i+1) n
481+
go_map ary mary (i+1) n
482482
{-# INLINE map #-}
483483

484484
-- | Strict version of 'map'.
@@ -487,15 +487,15 @@ map' f = \ ary ->
487487
let !n = length ary
488488
in run $ do
489489
mary <- new_ n
490-
go ary mary 0 n
490+
go_map' ary mary 0 n
491491
return mary
492492
where
493-
go ary mary i n
493+
go_map' ary mary i n
494494
| i >= n = return ()
495495
| otherwise = do
496496
x <- indexM ary i
497497
write mary i $! f x
498-
go ary mary (i+1) n
498+
go_map' ary mary (i+1) n
499499
{-# INLINE map' #-}
500500

501501
filter :: (a -> Bool) -> Array a -> Array a
@@ -544,24 +544,24 @@ fromList n xs0 =
544544
CHECK_EQ("fromList", n, Prelude.length xs0)
545545
run $ do
546546
mary <- new_ n
547-
go xs0 mary 0
547+
go_fromList xs0 mary 0
548548
return mary
549549
where
550-
go [] !_ !_ = return ()
551-
go (x:xs) mary i = do write mary i x
552-
go xs mary (i+1)
550+
go_fromList [] !_ !_ = return ()
551+
go_fromList (x:xs) mary i = do write mary i x
552+
go_fromList xs mary (i+1)
553553

554554
fromList' :: Int -> [a] -> Array a
555555
fromList' n xs0 =
556556
CHECK_EQ("fromList'", n, Prelude.length xs0)
557557
run $ do
558558
mary <- new_ n
559-
go xs0 mary 0
559+
go_fromList' xs0 mary 0
560560
return mary
561561
where
562-
go [] !_ !_ = return ()
563-
go (!x:xs) mary i = do write mary i x
564-
go xs mary (i+1)
562+
go_fromList' [] !_ !_ = return ()
563+
go_fromList' (!x:xs) mary i = do write mary i x
564+
go_fromList' xs mary (i+1)
565565

566566
-- | @since 0.2.17.0
567567
instance TH.Lift a => TH.Lift (Array a) where
@@ -582,13 +582,13 @@ traverse :: Applicative f => (a -> f b) -> Array a -> f (Array b)
582582
traverse f = \ !ary ->
583583
let
584584
!len = length ary
585-
go !i
585+
go_traverse !i
586586
| i == len = pure $ STA $ \mary -> unsafeFreeze (MArray mary)
587587
| (# x #) <- index# ary i
588588
= liftA2 (\b (STA m) -> STA $ \mary ->
589589
write (MArray mary) i b >> m mary)
590-
(f x) (go (i + 1))
591-
in runSTA len <$> go 0
590+
(f x) (go_traverse (i + 1))
591+
in runSTA len <$> go_traverse 0
592592
{-# INLINE [1] traverse #-}
593593

594594
-- TODO: Would it be better to just use a lazy traversal
@@ -598,13 +598,13 @@ traverse' :: Applicative f => (a -> f b) -> Array a -> f (Array b)
598598
traverse' f = \ !ary ->
599599
let
600600
!len = length ary
601-
go !i
601+
go_traverse' !i
602602
| i == len = pure $ STA $ \mary -> unsafeFreeze (MArray mary)
603603
| (# x #) <- index# ary i
604604
= liftA2 (\ !b (STA m) -> STA $ \mary ->
605605
write (MArray mary) i b >> m mary)
606-
(f x) (go (i + 1))
607-
in runSTA len <$> go 0
606+
(f x) (go_traverse' (i + 1))
607+
in runSTA len <$> go_traverse' 0
608608
{-# INLINE [1] traverse' #-}
609609

610610
-- Traversing in ST, we don't need to get fancy; we
@@ -613,28 +613,28 @@ traverseST :: (a -> ST s b) -> Array a -> ST s (Array b)
613613
traverseST f = \ ary0 ->
614614
let
615615
!len = length ary0
616-
go k !mary
616+
go_traverseST k !mary
617617
| k == len = return mary
618618
| otherwise = do
619619
x <- indexM ary0 k
620620
y <- f x
621621
write mary k y
622-
go (k + 1) mary
623-
in new_ len >>= (go 0 >=> unsafeFreeze)
622+
go_traverseST (k + 1) mary
623+
in new_ len >>= (go_traverseST 0 >=> unsafeFreeze)
624624
{-# INLINE traverseST #-}
625625

626626
traverseIO :: (a -> IO b) -> Array a -> IO (Array b)
627627
traverseIO f = \ ary0 ->
628628
let
629629
!len = length ary0
630-
go k !mary
630+
go_traverseIO k !mary
631631
| k == len = return mary
632632
| otherwise = do
633633
x <- stToIO $ indexM ary0 k
634634
y <- f x
635635
stToIO $ write mary k y
636-
go (k + 1) mary
637-
in stToIO (new_ len) >>= (go 0 >=> stToIO . unsafeFreeze)
636+
go_traverseIO (k + 1) mary
637+
in stToIO (new_ len) >>= (go_traverseIO 0 >=> stToIO . unsafeFreeze)
638638
{-# INLINE traverseIO #-}
639639

640640

0 commit comments

Comments
 (0)