From 5704f01821e3b1ce3b54c7534e930866aaaff81e Mon Sep 17 00:00:00 2001 From: Ivan Lazar Miljenovic Date: Mon, 3 Jul 2017 15:36:18 +1000 Subject: [PATCH] Generalise the type of uncons --- src/Streaming/Prelude.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Streaming/Prelude.hs b/src/Streaming/Prelude.hs index 4e30c30..c2e7f4a 100644 --- a/src/Streaming/Prelude.hs +++ b/src/Streaming/Prelude.hs @@ -1996,10 +1996,10 @@ toList = fold (\diff a ls -> diff (a: ls)) id (\diff -> diff []) > Conduit.unfoldM uncons :: Stream (Of a) m r -> Conduit.Source m a -} -uncons :: Monad m => Stream (Of a) m () -> m (Maybe (a, Stream (Of a) m ())) +uncons :: Monad m => Stream (Of a) m r -> m (Maybe (a, Stream (Of a) m r)) uncons = loop where loop stream = case stream of - Return () -> return Nothing + Return _ -> return Nothing Effect m -> m >>= loop Step (a :> rest) -> return (Just (a,rest)) {-# INLINABLE uncons #-}