import FRP.Reactive import FRP.Reactive.LegacyAdapters import Control.Concurrent import Control.Monad import Control.Applicative main = do clock <- makeClock (inSink, indata) <- makeEvent clock forkIO $ forever $ getLine >>= inSink adaptE (reactor indata) reactor :: Event String -> Event Action reactor indata = print <$> fails indata where working i = id i fails i = do line <- i; return line