
On 5 January 2011 15:22, John Smith
There are now several classes in the Arrow module, and Arrow itself is a subclass of Category. Tutorials simply use the original Arrow definition, which gets the concept across fine. The learner can then proceed to understand the richer, and better factored, current implementation.
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. For me this isn't progress, and if I were a beginner encountering this, I'd seriously be asking myself is this really a language I'd want to be using.