@@ -10,6 +10,7 @@ import Data.IORef (IORef, newIORef, writeIORef)
10import System.IO.Unsafe (unsafePerformIO)
10import System.IO.Unsafe (unsafePerformIO)
12import qualified Asyncly as A
12import qualified Asyncly as A
13+import qualified Conduit.Simple as S
13import qualified Control.Monad.Logic as LG
14import qualified Control.Monad.Logic as LG
14import qualified Data.Machine as M
15import qualified Data.Machine as M
15import qualified Transient.Internals as T
16import qualified Transient.Internals as T
@@ -32,6 +33,7 @@ main = do
32 , bench "transient-nil" $ nfIO transient_nil
33 , bench "transient-nil" $ nfIO transient_nil
33 , bench "logict" $ nfIO logict_basic
34 , bench "logict" $ nfIO logict_basic
34 , bench "list-t" $ nfIO list_t_basic
35 , bench "list-t" $ nfIO list_t_basic
36+ , bench "simple-conduit" $ nfIO simple_conduit_basic
35 , bench "machines" $ nfIO machines_basic
37 , bench "machines" $ nfIO machines_basic
@@ -166,6 +168,18 @@ logict_basic = do
166 assert (Prelude.length xs == 49900) $
168 assert (Prelude.length xs == 49900) $
167 return (Prelude.length xs)
169 return (Prelude.length xs)
171+simple_conduit_basic :: IO Int
172+simple_conduit_basic = do
173+ xs <- S.sourceList [1..100000]
175+ S.$= S.mapC ((+1) :: Int -> Int)
177+ S.$= S.mapC ((+1) :: Int -> Int)
178+ S.$= S.filterC (\x -> x `mod` 2 == 0)
180+ assert (Prelude.length xs == 49900) $
181+ return (Prelude.length (xs :: [Int]))
169machines_basic :: IO Int
183machines_basic :: IO Int
170machines_basic = do
184machines_basic = do
171 xs <- M.runT $ M.source [1..100000]
185 xs <- M.runT $ M.source [1..100000]