@@ -21,7 +21,6 @@ import Data.Functor.Misc
21import Data.Maybe
21import Data.Maybe
22import Data.IntMap (IntMap)
22import Data.IntMap (IntMap)
23import qualified Data.IntMap as IntMap
23import qualified Data.IntMap as IntMap
24−import Control.Lens hiding (coerce)
25import Control.Monad.Ref
24import Control.Monad.Ref
26import Data.Monoid ((<>))
25import Data.Monoid ((<>))
@@ -829,8 +828,8 @@ getMergeSubscribed m = {-# SCC "getMergeSubscribed.entire" #-} do
829 parentOcc <- {-# SCC "getMergeSubscribed.a.parentOcc" #-} liftIO $ getEventSubscribedOcc parentSubd
828 parentOcc <- {-# SCC "getMergeSubscribed.a.parentOcc" #-} liftIO $ getEventSubscribedOcc parentSubd
830 height <- {-# SCC "getMergeSubscribed.a.height" #-} liftIO $ readIORef $ eventSubscribedHeightRef parentSubd
829 height <- {-# SCC "getMergeSubscribed.a.height" #-} liftIO $ readIORef $ eventSubscribedHeightRef parentSubd
831 return $ {-# SCC "getMergeSubscribed.a.returnVal" #-} (unsafeCoerce s :: Any, fmap (k :=>) parentOcc, height, WrapArg k :=> parentSubd)
830 return $ {-# SCC "getMergeSubscribed.a.returnVal" #-} (unsafeCoerce s :: Any, fmap (k :=>) parentOcc, height, WrapArg k :=> parentSubd)
832− let dm = DMap.fromDistinctAscList $ catMaybes $ map (^._2) subscribers
831+ let dm = DMap.fromDistinctAscList $ catMaybes $ map (\(_, x, _, _) -> x) subscribers
833− subscriberHeights = map (^._3) subscribers
832+ subscriberHeights = map (\(_, _, x, _) -> x) subscribers
834 myHeight =
833 myHeight =
835 if any (==invalidHeight) subscriberHeights --TODO: Replace 'any' with invalidHeight-preserving 'maximum'
834 if any (==invalidHeight) subscriberHeights --TODO: Replace 'any' with invalidHeight-preserving 'maximum'
836 then invalidHeight
835 then invalidHeight
@@ -852,7 +851,7 @@ getMergeSubscribed m = {-# SCC "getMergeSubscribed.entire" #-} do
852 , mergeSubscribedHeight = heightRef
851 , mergeSubscribedHeight = heightRef
853 , mergeSubscribedSubscribers = subsRef
852 , mergeSubscribedSubscribers = subsRef
854 , mergeSubscribedSelf = unsafeCoerce $ map (\(x, _, _, _) -> x) subscribers --TODO: Does lack of strictness make this leak?
853 , mergeSubscribedSelf = unsafeCoerce $ map (\(x, _, _, _) -> x) subscribers --TODO: Does lack of strictness make this leak?
855− , mergeSubscribedParents = DMap.fromDistinctAscList $ map (^._4) subscribers
854+ , mergeSubscribedParents = DMap.fromDistinctAscList $ map (\(_, _, _, x) -> x) subscribers
856#ifdef DEBUG_NODEIDS
855#ifdef DEBUG_NODEIDS
857 , mergeSubscribedNodeId = unsafeNodeId m
856 , mergeSubscribedNodeId = unsafeNodeId m