On Tue, Feb 11, 2014 at 2:42 AM, Gabriel Gonzalez <[email protected]> wrote:
> Ok, I think I found an approach that will satisfy everybody.  This solution
> only requires providing three utility functions in `pipes-parse`:
>
>     debugView
>         :: (Producer a m x -> Producer b m y)
>         -> (Producer a m x -> Producer b m y)
>     debugView = id
>
>     debugZoom
>         :: (StateT (Producer a m x) m r -> StateT (Producer b m y) m r)
>         -> (StateT (Producer a m x) m r -> StateT (Producer b m y) m r)
>     debugZoom = id
>
>     debugOver
>         :: (   (Producer a m w -> Producer b m x)
>             -> (Producer c m y -> Producer d m z) )
>         -> (   (Producer a m w -> Producer b m x)
>             -> (Producer c m y -> Producer d m z) )
>     debugOver = id
>
> The following example shows how you would use it (see the `p3` example):
>
> http://lpaste.net/99760


Ah, this is great! I like this solution.

Besides, the GHC error message is quite precise about where the error
happens, so users aware of the
existence of `debugView` and the other debug functions can readily
realize when they need to use them.

    In the first argument of `view', namely `decoded'
    In the second argument of `(>->)', namely `view decoded PB.stdin'


Regards,

Renzo Carbonara.

-- 
You received this message because you are subscribed to the Google Groups 
"Haskell Pipes" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].

Reply via email to