{-# LANGUAGE UnboxedTuples #-}

foo :: (a, b) -> (# b, a #)
foo (a, b)
  = case (# b, a #) of
        (# b, a #) -> (# , #) b a