@@ -98,6 +98,15 @@ splitAllAny value =
98 (FL.any (> value))
98 (FL.any (> value))
101+{-# INLINE serial_ #-}
102+serial_ :: Monad m => Int -> SerialT m Int -> m Bool
106+ (FL.all (<= (value `div` 2)))
101{-# INLINE shortest #-}
110{-# INLINE shortest #-}
102shortest :: Monad m => SerialT m Int -> m (Either Int Int)
111shortest :: Monad m => SerialT m Int -> m (Either Int Int)
103shortest = IP.fold (FL.shortest FL.sum FL.length)
112shortest = IP.fold (FL.shortest FL.sum FL.length)
@@ -106,18 +115,6 @@ shortest = IP.fold (FL.shortest FL.sum FL.length)
106longest :: Monad m => SerialT m Int -> m (Either Int Int)
115longest :: Monad m => SerialT m Int -> m (Either Int Int)
107longest = IP.fold (FL.longest FL.sum FL.length)
116longest = IP.fold (FL.longest FL.sum FL.length)
110−{-# INLINE split_ #-}
112− => Int -> SerialT m Int -> m ()
116− (FL.all (<= (value `div` 2)))
121-------------------------------------------------------------------------------
118-------------------------------------------------------------------------------
122-- Distributing by parallel application
119-- Distributing by parallel application
123-------------------------------------------------------------------------------
120-------------------------------------------------------------------------------
@@ -316,6 +313,7 @@ o_1_space_serial_composition value =
317 "composition"
314 "composition"
318 [ benchIOSink value "serialWith (all, any)" $ splitAllAny value
315 [ benchIOSink value "serialWith (all, any)" $ splitAllAny value
316+ , benchIOSink value "serial_ (all, any)" $ serial_ value
319 , benchIOSink value "tee (all, any)" $ teeAllAny value
317 , benchIOSink value "tee (all, any)" $ teeAllAny value
320 , benchIOSink value "many drain (take 1)" many
318 , benchIOSink value "many drain (take 1)" many
321 , benchIOSink value "shortest (sum, length)" shortest
319 , benchIOSink value "shortest (sum, length)" shortest