<p dir="ltr">It's generally quite hard or impossible to express commutative diagrams as Haskell types since it's (currently) impossible to talk about term equality at the type level. I imagine someone who actually knows category theory can describe some ways they use such concepts to design or analyse Haskell code, though.</p>
<div class="gmail_extra"><br><div class="gmail_quote">On Sep 22, 2016 7:26 PM, "Dimitri DeFigueiredo" <<a href="mailto:defigueiredo@ucdavis.edu">defigueiredo@ucdavis.edu</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In category theory, there are many ways one can make new categories out<br>
of an old one.<br>
<br>
In particular, given a category C one can construct:<br>
<br>
1. The arrows category of C:<br>
        arrows in C become objects and<br>
        commutative squares in C become arrows<br>
2. The slice category of C given an object A:<br>
        arrows into a distinguished object A become objects in the slice<br>
        commutative triangles become arrows<br>
<br>
There are also functors going from C to these new categories (and back).<br>
<br>
Are these constructed categories useful when C = `Hask` (the category of<br>
haskell types and functions)?<br>
What do they represent in programming terms?<br>
<br>
In other words, is there intuition for what the arrows category of Hask is?<br>
What about the slice category of Hask over a specific type?<br>
Do the functors between these match some programming abstractions?<br>
<br>
Any pointers are much appreciated.<br>
<br>
Thanks,<br>
<br>
Dimitri<br>
<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-<wbr>bin/mailman/listinfo/haskell-<wbr>cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div></div>