<div dir="ltr">Not sure if everyone just missed my earlier link, but this talk of "Arrow without arr is useless" seems odd in the face of significant academic work (with Coq proofs, GHC extension, real-world use case for heterogeneous metaprogramming, etc.) going into exactly that abstraction.<div><br></div><div>Here it is again, if you did miss it: <a href="http://www.megacz.com/berkeley/garrows/">http://www.megacz.com/berkeley/garrows/</a></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 27, 2018 at 9:19 AM, MarLinn <span dir="ltr"><<a href="mailto:monkleyon@gmail.com" target="_blank">monkleyon@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
In fact Unpickler is a Monad (isomorphic to an EitherT of a State) so "PU' a"<br>
is an Applicative and PU is what I call a "product profunctor".<br>
<br>
     <a href="https://hackage.haskell.org/package/product-profunctors" rel="noreferrer" target="_blank">https://hackage.haskell.org/p<wbr>ackage/product-profunctors</a><br>
<br>
This little augumentation in the definition of PU gets you a whole host of<br>
free functionality from the libaries for profunctors, applicatives and<br>
product profunctors.<br>
<br>
(By the way, this observation is completely different from the "compiling<br>
languages for different targets" technique that I mentioned in the previous<br>
post.)<br>
<br>
</blockquote>
<br></span>
I did see that I could turn PU into a profunctor, but not that that would make it an Applicative. Huh. Thanks for the tip!<br>
(I may have been distracted by looking for an arr to turn that profunctor into an arrow though.)<br>
<br>
It seems that while the particular observation is quite different, the more general approach is similar. Which nicely brings us back to the original question: If something "almost" fits a class, there's probably a better one around the corner. One might just be blind right now.<br>
<br>
Cheers,<br>
MarLinn<div class="HOEnZb"><div class="h5"><br>
<br>
______________________________<wbr>_________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bi<wbr>n/mailman/listinfo/haskell-caf<wbr>e</a><br>
Only members subscribed via the mailman list are allowed to post.</div></div></blockquote></div><br></div>