@@ -332,9 +332,9 @@ cacheEvent e =
332332 scheduleClear occRef
333333 propagateFast a subscribers
334334 , subscriberInvalidateHeight = \old -> do
335− FastWeakBag.traverse subscribers $ invalidateSubscriberHeight old
335+ FastWeakBag.traverse_ subscribers $ invalidateSubscriberHeight old
336336 , subscriberRecalculateHeight = \new -> do
337− FastWeakBag.traverse subscribers $ recalculateSubscriberHeight new
337+ FastWeakBag.traverse_ subscribers $ recalculateSubscriberHeight new
338338 }
339339 when (isJust occ) $ do
340340 liftIO $ writeIORef occRef occ -- Set the initial value of occRef; we don't need to do this if occ is Nothing
@@ -450,12 +450,12 @@ newSubscriberFan subscribed = return $ Subscriber
450450 , subscriberInvalidateHeight = \old -> do
451451 when debugInvalidateHeight $ putStrLn $ "invalidateSubscriberHeight: SubscriberFan" <> showNodeId subscribed
452452 subscribers <- readIORef $ fanSubscribedSubscribers subscribed
453− forM_ (DMap.toList subscribers) $ \(_ :=> v) -> WeakBag.traverse (_fanSubscribedChildren_list v) $ invalidateSubscriberHeight old
453+ forM_ (DMap.toList subscribers) $ \(_ :=> v) -> WeakBag.traverse_ (_fanSubscribedChildren_list v) $ invalidateSubscriberHeight old
454454 when debugInvalidateHeight $ putStrLn $ "invalidateSubscriberHeight: SubscriberFan" <> showNodeId subscribed <> " done"
455455 , subscriberRecalculateHeight = \new -> do
456456 when debugInvalidateHeight $ putStrLn $ "recalculateSubscriberHeight: SubscriberFan" <> showNodeId subscribed
457457 subscribers <- readIORef $ fanSubscribedSubscribers subscribed
458− forM_ (DMap.toList subscribers) $ \(_ :=> v) -> WeakBag.traverse (_fanSubscribedChildren_list v) $ recalculateSubscriberHeight new
458+ forM_ (DMap.toList subscribers) $ \(_ :=> v) -> WeakBag.traverse_ (_fanSubscribedChildren_list v) $ recalculateSubscriberHeight new
459459 when debugInvalidateHeight $ putStrLn $ "recalculateSubscriberHeight: SubscriberFan" <> showNodeId subscribed <> " done"
460460 }
461461
@@ -471,7 +471,7 @@ newSubscriberSwitch subscribed = return $ Subscriber
471471 oldHeight <- readIORef $ switchSubscribedHeight subscribed
472472 when (oldHeight /= invalidHeight) $ do
473473 writeIORef (switchSubscribedHeight subscribed) $! invalidHeight
474− WeakBag.traverse (switchSubscribedSubscribers subscribed) $ invalidateSubscriberHeight oldHeight
474+ WeakBag.traverse_ (switchSubscribedSubscribers subscribed) $ invalidateSubscriberHeight oldHeight
475475 when debugInvalidateHeight $ putStrLn $ "invalidateSubscriberHeight: SubscriberSwitch" <> showNodeId subscribed <> " done"
476476 , subscriberRecalculateHeight = \new -> do
477477 when debugInvalidateHeight $ putStrLn $ "recalculateSubscriberHeight: SubscriberSwitch" <> showNodeId subscribed
@@ -494,8 +494,8 @@ newSubscriberCoincidenceOuter subscribed = return $ Subscriber
494494 Nothing -> do
495495 when (innerHeight > outerHeight) $ liftIO $ do -- If the event fires, it will fire at a later height
496496 writeIORef (coincidenceSubscribedHeight subscribed) $! innerHeight
497− WeakBag.traverse (coincidenceSubscribedSubscribers subscribed) $ invalidateSubscriberHeight outerHeight
498− WeakBag.traverse (coincidenceSubscribedSubscribers subscribed) $ recalculateSubscriberHeight innerHeight
497+ WeakBag.traverse_ (coincidenceSubscribedSubscribers subscribed) $ invalidateSubscriberHeight outerHeight
498+ WeakBag.traverse_ (coincidenceSubscribedSubscribers subscribed) $ recalculateSubscriberHeight innerHeight
499499 Just o -> do -- Since it's already firing, no need to adjust height
500500 liftIO $ writeIORef (coincidenceSubscribedOccurrence subscribed) occ
501501 scheduleClear $ coincidenceSubscribedOccurrence subscribed
@@ -542,14 +542,14 @@ propagate :: a -> WeakBag (Subscriber x a) -> EventM x ()
542542propagate a subscribers = withIncreasedDepth $ do
543543 -- Note: in the following traversal, we do not visit nodes that are added to the list during our traversal; they are new events, which will necessarily have full information already, so there is no need to traverse them
544544 --TODO: Should we check if nodes already have their values before propagating? Maybe we're re-doing work
545− WeakBag.traverse subscribers $ \s -> subscriberPropagate s a
545+ WeakBag.traverse_ subscribers $ \s -> subscriberPropagate s a
546546
547547-- | Propagate everything at the current height
548548propagateFast :: a -> FastWeakBag (Subscriber x a) -> EventM x ()
549549propagateFast a subscribers = withIncreasedDepth $ do
550550 -- Note: in the following traversal, we do not visit nodes that are added to the list during our traversal; they are new events, which will necessarily have full information already, so there is no need to traverse them
551551 --TODO: Should we check if nodes already have their values before propagating? Maybe we're re-doing work
552− FastWeakBag.traverse subscribers $ \s -> subscriberPropagate s a
552+ FastWeakBag.traverse_ subscribers $ \s -> subscriberPropagate s a
553553
554554--------------------------------------------------------------------------------
555555-- EventSubscribed
@@ -1527,15 +1527,15 @@ fanInt p = unsafePerformIO $ do
15271527 liftIO $ writeIORef (_fanInt_occRef self) m
15281528 scheduleIntClear $ _fanInt_occRef self
15291529 FastMutableIntMap.forIntersectionWithImmutable_ (_fanInt_subscribers self) m $ \b v -> do --TODO: Do we need to know that no subscribers are being added as we traverse?
1530− FastWeakBag.traverse b $ \s -> do
1530+ FastWeakBag.traverse_ b $ \s -> do
15311531 subscriberPropagate s v
15321532 , subscriberInvalidateHeight = \old -> do
15331533 FastMutableIntMap.for_ (_fanInt_subscribers self) $ \b -> do
1534− FastWeakBag.traverse b $ \s -> do
1534+ FastWeakBag.traverse_ b $ \s -> do
15351535 subscriberInvalidateHeight s old
15361536 , subscriberRecalculateHeight = \new -> do
15371537 FastMutableIntMap.for_ (_fanInt_subscribers self) $ \b -> do
1538− FastWeakBag.traverse b $ \s -> do
1538+ FastWeakBag.traverse_ b $ \s -> do
15391539 subscriberRecalculateHeight s new
15401540 }
15411541 liftIO $ do
@@ -2207,7 +2207,7 @@ runFrame a = SpiderHost $ do
22072207 myHeight <- readIORef $ switchSubscribedHeight subscribed
22082208 when (parentHeight /= myHeight) $ do
22092209 writeIORef (switchSubscribedHeight subscribed) $! invalidHeight
2210− WeakBag.traverse (switchSubscribedSubscribers subscribed) $ invalidateSubscriberHeight myHeight
2210+ WeakBag.traverse_ (switchSubscribedSubscribers subscribed) $ invalidateSubscriberHeight myHeight
22112211 mapM_ _someMergeUpdate_invalidateHeight mergeUpdates --TODO: In addition to when the patch is completely empty, we should also not run this if it has some Nothing values, but none of them have actually had any effect; potentially, we could even check for Just values with no effect (e.g. by comparing their IORefs and ignoring them if they are unchanged); actually, we could just check if the new height is different
22122212 forM_ coincidenceInfos $ \(SomeResetCoincidence subscription mcs) -> do
22132213 unsubscribe subscription
@@ -2248,7 +2248,7 @@ invalidateCoincidenceHeight subscribed = do
22482248 oldHeight <- readIORef $ coincidenceSubscribedHeight subscribed
22492249 when (oldHeight /= invalidHeight) $ do
22502250 writeIORef (coincidenceSubscribedHeight subscribed) $! invalidHeight
2251− WeakBag.traverse (coincidenceSubscribedSubscribers subscribed) $ invalidateSubscriberHeight oldHeight
2251+ WeakBag.traverse_ (coincidenceSubscribedSubscribers subscribed) $ invalidateSubscriberHeight oldHeight
22522252
22532253updateSwitchHeight :: Height -> SwitchSubscribed x a -> IO ()
22542254updateSwitchHeight new subscribed = do
@@ -2256,7 +2256,7 @@ updateSwitchHeight new subscribed = do
22562256 when (oldHeight == invalidHeight) $ do --TODO: This 'when' should probably be an assertion
22572257 when (new /= invalidHeight) $ do --TODO: This 'when' should probably be an assertion
22582258 writeIORef (switchSubscribedHeight subscribed) $! new
2259− WeakBag.traverse (switchSubscribedSubscribers subscribed) $ recalculateSubscriberHeight new
2259+ WeakBag.traverse_ (switchSubscribedSubscribers subscribed) $ recalculateSubscriberHeight new
22602260
22612261recalculateCoincidenceHeight :: CoincidenceSubscribed x a -> IO ()
22622262recalculateCoincidenceHeight subscribed = do
@@ -2265,7 +2265,7 @@ recalculateCoincidenceHeight subscribed = do
22652265 height <- calculateCoincidenceHeight subscribed
22662266 when (height /= invalidHeight) $ do
22672267 writeIORef (coincidenceSubscribedHeight subscribed) $! height
2268− WeakBag.traverse (coincidenceSubscribedSubscribers subscribed) $ recalculateSubscriberHeight height
2268+ WeakBag.traverse_ (coincidenceSubscribedSubscribers subscribed) $ recalculateSubscriberHeight height
22692269
22702270calculateSwitchHeight :: SwitchSubscribed x a -> IO Height
22712271calculateSwitchHeight subscribed = getEventSubscribedHeight . _eventSubscription_subscribed =<< readIORef (switchSubscribedCurrentParent subscribed)