<div dir="ltr">I am a Haskell beginner. I have used arrows occasionally to move 2-tuples around, but don't understand more than that. <div><br></div><div>I'm interested in know what's the connection between arrows and 2-tuples. I don't really understand most of the Control.Arrow docs, but it seems that a lot of stuff about arrows doesn't mention 2-tuples. Yet the operators (***), (&&&), first, and second seem to be common. Is there some way to explain the link?</div><div><br></div><div>Also, the main instance of Arrow seems to be (->). There is also something about Kleisli monads, but I don't know what those are. Is there an another big use case for arrows besides (->)? Don't worry about explaining it all, just a quick mention would be fine and I can investigate it myself.</div><div><br></div><div>D</div><div><br></div></div>