on b1ee90e help sign in
streamly/test/applicative.hs
17 lines 542 B history raw
1{-# LANGUAGE FlexibleContexts #-}
3import Control.Applicative ((<$>), (<*>), (<|>))
4import Control.Monad.IO.Class (liftIO)
5import System.IO
6import Asyncly
8main = do
9 hSetBuffering stdout LineBuffering
10 xs <- wait $ threads 5 $ do
11 x <- (,) <$> (event 1 <|> event 2) <*> (event 3 <|> event 4)
12 --x <- (,) <$> choose [1,2] <*> choose [3,4]
13 liftIO $ putStrLn $ show x
14 return x
15 putStrLn $ show xs
16 where
17 event n = async $ liftIO $ (do putStrLn ("event" ++ show n); return n :: IO Int)