$) :: (a1 -> a2, b1 -> b2) -> (a1, b1) -> (a2, b2)
-- ^ applicates a pair of functions to a pair of values
(f1, f2) $$ (x, y) = (f1 x, f2 y)


($$) :: (a1 -> a2, b1 -> b2) -> (a1, b1) -> (a2, b2)
(f1, f2) $$ (x, y) = (f1 x, f2 y)
(f1, f2) $$ (x, y) = (f1 x, f2 y)