Re: Haskell Arrows and internal categories
On Mon, Sep 27, 2010 at 3:50 PM, Mike Stay <metaweta@gmail.com> wrote:
I'm trying to understand Arrows in Haskell, http://www.haskell.org/arrows/index.html but since I haven't become literate yet, I'm not sure I'm getting everything right. It looks to me like an Arrow is a monoidal closed category object in Hask. Is that all there is to it?
Hmm. After reading "Freyd is Kleisli, for Arrows", it now looks to me like an Arrow is an enrichment. It consists of a V-profunctor - A:C^op x C -> V, where V is a monoidal category, together with a natural transformation - arr:Hom => A and dinatural transformations - compose:A(b,c) x A(a,b) => A(a,c) - first:A(a,b) => A(a tensor c, b tensor c) satisfying various coherence laws. -- Mike Stay - metaweta@gmail.com http://www.cs.auckland.ac.nz/~mike http://reperiendi.wordpress.com [For admin and other information see: http://www.mta.ca/~cat-dist/ ]
You may be interested in the work of my colleagues: "Categorical semantics for Arrows" (2009) Bart Jacobs, Ichiro Hasuo and Chris Heunen Journal of Functional Programming, 19(3-4):403-438, 2009 http://www.comlab.ox.ac.uk/people/chris.heunen/publications/2008/arrows/arro... "Arrows, like Monads, are Monoids" (2006) Bart Jacobs and Chris Heunen (ENTCS 158:219-236) in the proceedings of MFPS 22 http://www.comlab.ox.ac.uk/people/chris.heunen/publications/2006/arrows/arro... Bas On Tue, Sep 28, 2010 at 1:45 AM, Mike Stay <metaweta@gmail.com> wrote:
On Mon, Sep 27, 2010 at 3:50 PM, Mike Stay <metaweta@gmail.com> wrote:
I'm trying to understand Arrows in Haskell, http://www.haskell.org/arrows/index.html but since I haven't become literate yet, I'm not sure I'm getting everything right. It looks to me like an Arrow is a monoidal closed category object in Hask. Is that all there is to it?
Hmm. After reading "Freyd is Kleisli, for Arrows", it now looks to me like an Arrow is an enrichment.
It consists of a V-profunctor - A:C^op x C -> V, where V is a monoidal category, together with a natural transformation - arr:Hom => A and dinatural transformations - compose:A(b,c) x A(a,b) => A(a,c) - first:A(a,b) => A(a tensor c, b tensor c) satisfying various coherence laws. -- Mike Stay - metaweta@gmail.com http://www.cs.auckland.ac.nz/~mike http://reperiendi.wordpress.com
[For admin and other information see: http://www.mta.ca/~cat-dist/ ]
I should also point out recent work of my colleagues: "What is a Categorical Model of Arrows?" Robert Atkey. Mathematically Structured Functional Programming 2008. http://personal.cis.strath.ac.uk/~raa/arrows.pdf http://personal.cis.strath.ac.uk/~raa/msfp-slides-arrows.pdf "Idioms are oblivious, arrows are meticulous, monads are promiscuous." Sam Lindley, Philip Wadler, and Jeremy Yallop. In the proceedings of MSFP 2008. ENTCS. http://homepages.inf.ed.ac.uk/slindley/papers/idioms-arrows-monads.pdf "The arrow calculus." Sam Lindley, Philip Wadler and Jeremy Yallop. In the Journal of Functional Programming 20:1, pages 51-69, January 2010. Cambridge University Press. http://homepages.inf.ed.ac.uk/slindley/papers/arrow-calculus.pdf Cheers, Jeff. ----- Original Message ----
From: Bas Spitters <spitters@cs.ru.nl> To: Mike Stay <metaweta@gmail.com> Cc: categories <categories@mta.ca> Sent: Wed, September 29, 2010 1:06:16 PM Subject: categories: Re: Haskell Arrows and internal categories
You may be interested in the work of my colleagues: "Categorical semantics for Arrows" (2009) Bart Jacobs, Ichiro Hasuo and Chris Heunen Journal of Functional Programming, 19(3-4):403-438, 2009 http://www.comlab.ox.ac.uk/people/chris.heunen/publications/2008/arrows/arro...
f
"Arrows, like Monads, are Monoids" (2006) Bart Jacobs and Chris Heunen (ENTCS 158:219-236) in the proceedings of MFPS 22 http://www.comlab.ox.ac.uk/people/chris.heunen/publications/2006/arrows/arro...
f
Bas
[For admin and other information see: http://www.mta.ca/~cat-dist/ ]
Hi, I think the following newer papers have not yet been mentioned in this discussion: - K. Asada, I. Hasuo. Categorifying computations into components via arrows as profunctors. In Proc. of 10th Wksh. on Coalgebraic Methods in Computer Science, CMCS 2010 (Paphos, March 2010), v. 264, n. 2 of Electron. Notes in Theor. Comput. Sci., Elsevier, pp. 25-45. Elsevier, 2010. http://dx.doi.org/10.1016/j.entcs.2010.07.012 - K. Asada. Arrows are strong monads. In Proc. of 3rd Wksh. on Mathematically Structured Functional Programming, MSFP 2010 Baltimore, Sept. 2010), pp. 33-41. ACM Press, 2010. These promote the view that an arrow is a strong monad in Prof (2-categorically) (building on and going further than Heunen, Jacobs, MFPS 2006, Jacobs, Hasuo, MSFP 2006, Jacobs, Heunen, Hasuo, JFP 2009.) - T. Altenkirch, J. Chapman, T. Uustalu. Monads need not be endofunctors. In L. Ong, ed., Proc. of 13th Int. Conf. on Foundations of Software Science and Computation Structures, FoSSaCS 2010 (Paphos, March 2010), v. 6014 of Lect. Notes in Comput. Sci., pp. 297-311. Springer, 2010. http://dx.doi.org/10.1007/978-3-642-12032-9_21 This paper shows that an arrow is the same as a strong "relative monad" on the Yoneda embedding. Best wishes, Tarmo U [For admin and other information see: http://www.mta.ca/~cat-dist/ ]
Thanks everyone for your responses, both on- and off-list! -- Mike Stay - metaweta@gmail.com http://www.cs.auckland.ac.nz/~mike http://reperiendi.wordpress.com [For admin and other information see: http://www.mta.ca/~cat-dist/ ]
participants (4)
-
Bas Spitters -
Jeff Egger -
Mike Stay -
Tarmo Uustalu