
On January 5, 2011 11:06:52 Stephen Tetley wrote:
Now that someone has brought Arrows up...
Personally I find the current arrows situation unpleasant and frustrating. I only use arrows infrequently so I haven't built up an intuition about them the way I have with monads. The current code is unlike the best tutorial (John Hughes's AFP lecture notes), and last night when I was looking for tutorial material covering the new classes I couldn't find any, all I had to work with was the code in Base and Ross Paterson's arrow transformer package. There isn't even an explanation in the Control.Arrow Haddock docs elucidating the changes.
The arrow stuff seems a bit unpleasant/squishy to me as well. I wonder if Patai hit upon the root of the issue when in his blog (which includes a nice hierarchy diagram) he suggested/proposed that "Arrow is strictly the intersection of Applicative and Category". http://just-bottom.blogspot.com/2010/04/programming-with-effects-story-so- far.html I haven't really seen any reason to believe otherwise myself. If true, it greatly clarifies my understanding of exactly what additional power you get (and possibly suggests that hierarchy needs some care too). Cheers! -Tyson