@@ -1090,13 +1090,23 @@ runBehaviorM :: BehaviorM a -> Maybe (Weak Invalidator, IORef [SomeBehaviorSubsc
1090runBehaviorM a mwi holdInits = runReaderT (unBehaviorM a) (mwi, holdInits)
1090runBehaviorM a mwi holdInits = runReaderT (unBehaviorM a) (mwi, holdInits)
1092askInvalidator :: BehaviorM (Maybe (Weak Invalidator))
1092askInvalidator :: BehaviorM (Maybe (Weak Invalidator))
1093−askInvalidator = fmap fst . fst <$> BehaviorM ask
1093+askInvalidator = do
1094+ (!m, _) <- BehaviorM ask
1096+ Nothing -> return Nothing
1097+ Just (!wi, _) -> return $ Just wi
1095askParentsRef :: BehaviorM (Maybe (IORef [SomeBehaviorSubscribed]))
1099askParentsRef :: BehaviorM (Maybe (IORef [SomeBehaviorSubscribed]))
1096−askParentsRef = fmap snd . fst <$> BehaviorM ask
1100+askParentsRef = do
1101+ (!m, _) <- BehaviorM ask
1103+ Nothing -> return Nothing
1104+ Just (_, !p) -> return $ Just p
1098askBehaviorHoldInits :: BehaviorM (IORef [SomeHoldInit])
1106askBehaviorHoldInits :: BehaviorM (IORef [SomeHoldInit])
1099−askBehaviorHoldInits = snd <$> BehaviorM ask
1107+askBehaviorHoldInits = do
1108+ (_, !his) <- BehaviorM ask
1101readBehaviorTracked :: Behavior a -> BehaviorM a
1111readBehaviorTracked :: Behavior a -> BehaviorM a
1102readBehaviorTracked b = case b of
1112readBehaviorTracked b = case b of