animate :: Behavior a -> (a -> IO ()) -> Interval ()
animate b f = do
    initial <- liftIO $ sample b
    liftIO $ f initial
    defer $ listen b f
animate :: Behavior a -> (a -> IO ()) -> Interval ()
animate b f = do
    initial <- liftIO $ sample b
    liftIO $ f initial
    defer $ listen b f
animate b f = do
    initial <- liftIO $ sample b
    liftIO $ f initial
    defer $ listen b f