Hello everyone,<div><br></div><div>sorry for the dumb question but I&#39;m wrapping my head around arrow just from this morning.</div><div>Consider this toy function to swap argument of a tuple:</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px">
<div><div>swapA&#39; :: (Arrow a) =&gt; a ((b,c), (b,c)) (c,b)</div></div><div><div>swapA&#39; = swapFirst &gt;&gt;&gt; swapSecond</div></div><div><div>  where</div></div><div><div>    swapFirst  = first $ arr snd</div></div>
<div><div>    swapSecond = second $ arr fst</div></div></blockquote><div><br></div><div>It works but requires to pass a tuple of tuple, namely ((b,c), (b,c)).</div><div>How can I explicitly pass my tuple of tuple to swapFirst so I can simply invoke</div>
<div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>swapA&#39; (1,2) </div></blockquote><div><br></div><div>and get the correct result?</div><div><br></div><div>ps. I know that swap can be easily and elegantly be written as:</div>
<div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>swap = snd &amp;&amp;&amp; fst</div></blockquote><div><br></div><div>but the point of the exercise was to experiment with first, second and arrow concatenation</div>
<div><br></div><div>Thanks in advance,</div><div>Alfredo</div>