
On Wed, Oct 03, 2012 at 10:41:25AM +0200, Alfredo Di Napoli wrote:
Hello everyone,
sorry for the dumb question but I'm wrapping my head around arrow just from this morning. Consider this toy function to swap argument of a tuple:
swapA' :: (Arrow a) => a ((b,c), (b,c)) (c,b) swapA' = swapFirst >>> swapSecond where swapFirst = first $ arr snd swapSecond = second $ arr fst
It works but requires to pass a tuple of tuple, namely ((b,c), (b,c)). How can I explicitly pass my tuple of tuple to swapFirst so I can simply invoke
swapA' (1,2)
and get the correct result?
Like this? swapA' = dup >>> swapFirst >>> swapSecond where dup = id &&& id ... I'm afraid I'm not confident I really understand your question, however, so if that doesn't answer it, try asking again! -Brent