@@ -26,12 +26,12 @@ main = do
27 putStrLn $ "\ninterleave:\n"
27 putStrLn $ "\ninterleave:\n"
28 runSerialT $ do
28 runSerialT $ do
29− x <- return 0 <> return 1 <=> return 100 <> return 101
29+ x <- (return 0 <> return 1) `interleave` (return 100 <> return 101)
30 liftIO $ print (x :: Int)
30 liftIO $ print (x :: Int)
32 putStrLn $ "\nParallel interleave:\n"
32 putStrLn $ "\nParallel interleave:\n"
33 runSerialT $ do
33 runSerialT $ do
34− x <- return 0 <> return 1 <|> return 100 <> return 101
34+ x <- (return 0 <> return 1) `parmerge` (return 100 <> return 101)
35 liftIO $ print (x :: Int)
35 liftIO $ print (x :: Int)
@@ -71,12 +71,12 @@ main = do
71 loopTailA :: Int -> SerialT IO Int
71 loopTailA :: Int -> SerialT IO Int
72 loopTailA x = do
72 loopTailA x = do
73 liftIO $ putStrLn "LoopTailA..."
73 liftIO $ putStrLn "LoopTailA..."
74− return x <| (if x < 3 then loopTailA (x + 1) else empty)
74+ return x `asyncmerge` (if x < 3 then loopTailA (x + 1) else empty)
76 loopHeadA :: Int -> SerialT IO Int
76 loopHeadA :: Int -> SerialT IO Int
77 loopHeadA x = do
77 loopHeadA x = do
78 liftIO $ putStrLn "LoopHeadA..."
78 liftIO $ putStrLn "LoopHeadA..."
79− (if x < 3 then loopHeadA (x + 1) else empty) <| return x
79+ (if x < 3 then loopHeadA (x + 1) else empty) `asyncmerge` return x
81-------------------------------------------------------------------------------
81-------------------------------------------------------------------------------
82-- Parallel (fairly scheduled, multi-threaded) stream generator loops
82-- Parallel (fairly scheduled, multi-threaded) stream generator loops