@@ -87,6 +87,8 @@ workLoopFIFO q sv winfo = run
87 yieldk a r = do
87 yieldk a r = do
88 res <- liftIO $ yield sv winfo a
88 res <- liftIO $ yield sv winfo a
89 runInIO <- askRunInIO
89 runInIO <- askRunInIO
90+ -- XXX If the queue is empty we do not need to enqueue. We can just
91+ -- continue evaluating the stream.
90 liftIO $ enqueueFIFO sv q (runInIO, r)
92 liftIO $ enqueueFIFO sv q (runInIO, r)
91 return $ if res then Continue else Suspend
93 return $ if res then Continue else Suspend