import Control.Concurrent.Bag.Safe import Control.Concurrent.STM (TChan) import Fib main :: IO () main = do newEvalBag (Just takeFirst) (replicate 1000000 $ fib 30) (getResult >>= liftIO . putStrLn . show :: BagT TChan Int IO ())