
22 Oct
2007
22 Oct
'07
4:02 p.m.
Conal Elliott wrote:
I like the simplicity of th Cartesian class, including definability of dup, swap, lAssoc, rAssoc, first, and second.
I'm missing the significance of
But IIRC, (&&&) does impose an "order of side effects" on the arguments, so Arrows are more general (less restrictive) than cartesian categories.
Is it just that you're wondering with what class to associate the fst/&&& and snd/&&& laws?
fst . (f &&& g) = f snd . (f &&& g) = g
Exactly. They often don't hold for Arrows but are taken granted for Cartesian categories. So, using (&&&) as primitive is - despite its elegance - not the right thing to do. (That's also why Arrows have first and second as primitives even when (&&&) makes them superfluous.). Regards, apfelmus