Ticket #3288: crash.hs

File crash.hs, 633 bytes (added by Baughn, 5 years ago)
Line 
1import Data.Monoid
2import System.IO
3import FRP.Reactive
4import FRP.Reactive.Internal.Reactive
5import FRP.Reactive.Internal.Future
6
7
8printFutures :: Show a => Event a -> IO ()
9printFutures e | isNeverE e = print "never-never"
10printFutures (Event (Future (t,a `Stepper` e))) = print (Future (t,a)) >> printFutures e
11
12joinE :: Event (Event a) -> Event a
13joinE (Event u) = Event (u >>= eFuture . g)
14 where 
15   g (v `Stepper` vs) = v `mappend` joinE vs
16
17
18main :: IO ()
19main = do
20  hSetBuffering stdout NoBuffering
21  let ev1  = countE_ $ atTimes [2,2.5,3.2,3.7]
22      allE = fmap atTime ev1
23  printFutures ev1
24  printFutures $ joinE allE
25