Say I have f :: u -> v -> w and g :: x -> y -> z . I want h :: (u,x) -> (v,y) -> (w,z) .
So, I could do it manually:
h (u,x) (v,y) = (fuv, gxy)
But where is the fun in this?
Using (***) , I can get the part there:
(f *** g) :: (u,x) -> (v -> w, y -> z)
But I can't figure out how to get this last mile.
haskell arrows
rampion
source share