newEvent :: Interval (Event a, a -> IO ())
newEvent = do
    (b, update) <- newBehavior Nothing
    return (Event b, \a -> update (Just a) >> update Nothing)
newEvent :: Interval (Event a, a -> IO ())
newEvent = do
    (b, update) <- newBehavior Nothing
    return (Event b, \a -> update (Just a) >> update Nothing)
newEvent = do
    (b, update) <- newBehavior Nothing
    return (Event b, \a -> update (Just a) >> update Nothing)