import Control.Concurrent.Bag.Safe import Control.Concurrent.STM (TChan) import Control.Concurrent (threadDelay) import Fib import System.Mem import Control.DeepSeq f i = (fib i) : f (i+1) main :: IO () main = do newTaskBag (Just splitHalf) [return $ Just [], let r = f 0 in r `deepseq` return $ Just r] (getResult >>= liftIO . putStrLn . show :: BagT TChan [Int] IO ()) threadDelay 10000000