
Andrzej Jaworski wrote:
Monads are monoids in categories of functors C -> C Arrows are monoids in subcategories of bifunctors (C^op) x C -> C Trees are a playing ground for functors in general:-)
This is the nice thing about category theory! plenty of reuse of concepts :) The situation for Arrows is a bit more complex. Monoids (C^op) x C -> C are equivalent to Freyd categories (Heunen and Jacobs, MFPS 2006) , but Arrows in Haskell are actually indexed-Freyd categories, as explained by Bob Atkey in "What is a Categorical Model of Arrows?" (MSFP 2008, http://homepages.inf.ed.ac.uk/ratkey/arrows.pdf) The realization that monads are monoids would be far more useful in a language with kind polymorphism. However, this shouldn't stop us from dreaming... All the best, - Mauro This message has been checked for viruses but the contents of an attachment may still contain software viruses, which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation.