module Util where import Control.Arrow; constA :: Arrow r => a -> r b a; constA = arr . const; swap_snds_A :: Arrow r => r ((a, b), c) ((a, c), b); swap_snds_A = arr $ \ ((x, y), z) -> ((x, z), y);