From 5e387e52ab52117a1b245508232cd04d79fff47d Mon Sep 17 00:00:00 2001 From: michaelt Date: Sun, 3 May 2015 21:38:59 -0400 Subject: wibble examples --- Pipes/Text.hs | 2 +- examples/lines_url.hs | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/Pipes/Text.hs b/Pipes/Text.hs index 7a10f1e..e41689c 100644 --- a/Pipes/Text.hs +++ b/Pipes/Text.hs @@ -790,4 +790,4 @@ intercalate p0 = go0 -} -type Lens' a b = Functor f => (b -> f b) -> (a -> f a) +type Lens' a b = forall f . Functor f => (b -> f b) -> (a -> f a) diff --git a/examples/lines_url.hs b/examples/lines_url.hs index b676656..ebc04e5 100644 --- a/examples/lines_url.hs +++ b/examples/lines_url.hs @@ -23,15 +23,17 @@ main = do -- "http://www.gutenberg.org/files/10/10-h/10-h.htm" withManager tlsManagerSettings $ \m -> withHTTP req m $ \resp -> void $ runEffect $ - number_lines_of (responseBody resp ^. utf8 . lines) >-> toHandle IO.stdout + number_lines_of (responseBody resp ^. utf8 . lines) >-> toHandle IO.stdout -number_lines_of :: Monad m => FreeT (Producer Text m) m bad -> Producer Text m bad +number_lines_of :: Monad m => FreeT (Producer Text m) m r -> Producer Text m r number_lines_of = number_loop (1 :: Int) where - number_loop n freeProducers = do - freeProducer <- lift $ runFreeT freeProducers - case freeProducer of - Pure badbytes -> do yield $ T.pack "\n" - return badbytes -- these could be inspected ... - Free p -> do yield $ T.pack ("\n" ++ show n ++ " ") - nextFreeProducers <- p - number_loop (n+1) nextFreeProducers + number_loop n free = do + fproducer <- lift $ runFreeT free + case fproducer of + Pure badbytes -> do + yield $ T.pack "\n" + return badbytes -- these could be inspected ... + Free p -> do + yield $ T.pack ("\n" ++ show n ++ " ") + next_free <- p + number_loop (n+1) next_free -- cgit v1.2.3