@@ -156,8 +156,15 @@ For Events, the returned Event fires whenever the latest Event supplied by the w
156-- Flatten Event-of-Event to Event that fires when both wrapper AND new Event fire.
156-- Flatten Event-of-Event to Event that fires when both wrapper AND new Event fire.
157[ ] coincidence :: Event (Event a) -> Event a
157[ ] coincidence :: Event (Event a) -> Event a
159+-- Flatten Behavior-of-Behavior to Behavior. Behavior is an instance of Monad,
160+-- so the 'join' function from 'Control.Monad' suffices. The output of 'join' is
161+-- a Behavior whose value is equal to the current value of the current value of
163+[ ] join :: Behavior (Behavior a) -> Behavior a
159-- Flatten Dynamic-of-Dynamic to Dynamic. New Dynamic is used immediately.
166-- Flatten Dynamic-of-Dynamic to Dynamic. New Dynamic is used immediately.
160−-- Output updated whenever inner OR outer Dynamic updates.
167+-- Output updated whenever inner OR outer Dynamic updates.
161[ ] joinDyn :: Dynamic (Dynamic a) -> Dynamic a
168[ ] joinDyn :: Dynamic (Dynamic a) -> Dynamic a
162[ ] joinDynThroughMap :: Ord k => Dynamic (Map k (Dynamic a)) -> Dynamic (Map k a)
169[ ] joinDynThroughMap :: Ord k => Dynamic (Map k (Dynamic a)) -> Dynamic (Map k a)