I don't think teaching users how to "hack around" the titanic type error 
issue is really a solution though, and certainly not in pipes-parse because 
people who are interested in a particular pipes library are less likely to 
read it there.

On Monday, February 10, 2014 3:28:13 AM UTC+11, Gabriel Gonzalez wrote:
>
> So I was thinking some more about this, and I was wondering if perhaps the 
> solution would be to simply explain in the `pipes-parse` tutorial how to 
> simplify type errors using the trick of defining an intermediate non-lens 
> function.
>
> The tutorial would say (in more words) that if you have a type error with 
> a `lens` of type `Lens (Producer a m x) (Producer b m y)` while using 
> `view`, then you should convert it to an intermediate ordinary function 
> like this:
>
>     intermediate :: Producer a m x -> Producer b m y
>     intermediate = view lens
>
> ... then use that `intermediate` function for better type error 
> inference.  Similarly, if you have a type error using the `lens` with a 
> `zoom`, then you convert it to the following intermediate ordinary function:
>
>     intermediate:: StateT (Producer b m y) m r -> StateT (Producer a m x) 
> m r
>     intermediate = zoom lens
>
> Teaching beginners how to do this would help them improve type errors 
> without having to add redundant functions to the API.
>

-- 
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