on master help sign in
Use StreamD versions for null/head
527ab96Harendra Kumar
src/Streamly/Prelude/Internal.hs+2−2
@@ -1024,7 +1024,7 @@ runWhile = drainWhile
1024-- @since 0.1.1
1024-- @since 0.1.1
1025{-# INLINE null #-}
1025{-# INLINE null #-}
1026null :: Monad m => SerialT m a -> m Bool
1026null :: Monad m => SerialT m a -> m Bool
1027−null = K.null
1027+null = S.null . toStreamS
1028
1028
1029-- | Extract the first element of the stream, if any.
1029-- | Extract the first element of the stream, if any.
1030--
1030--
@@ -1033,7 +1033,7 @@ null = K.null
1033-- @since 0.1.0
1033-- @since 0.1.0
1034{-# INLINE head #-}
1034{-# INLINE head #-}
1035head :: Monad m => SerialT m a -> m (Maybe a)
1035head :: Monad m => SerialT m a -> m (Maybe a)
1036−head = K.head
1036+head = S.head . toStreamS
1037
1037
1038-- |
1038-- |
1039-- > tail = fmap (fmap snd) . uncons
1039-- > tail = fmap (fmap snd) . uncons
src/Streamly/Streams/StreamD.hs−1
@@ -648,7 +648,6 @@ drain (Stream step state) = go SPEC state
648null :: Monad m => Stream m a -> m Bool
648null :: Monad m => Stream m a -> m Bool
649null m = foldrM (\_ _ -> return False) (return True) m
649null m = foldrM (\_ _ -> return False) (return True) m
650
650
651−-- XXX SPEC?
652{-# INLINE_NORMAL head #-}
651{-# INLINE_NORMAL head #-}
653head :: Monad m => Stream m a -> m (Maybe a)
652head :: Monad m => Stream m a -> m (Maybe a)
654head m = foldrM (\x _ -> return (Just x)) (return Nothing) m
653head m = foldrM (\x _ -> return (Just x)) (return Nothing) m