-- | Convenience function for @first@ with a @Kleisli@ arrow.
firstM ∷ Monad m ⇒ (a → m c) → (a, b) → m (c, b)
firstM = unkleislify first

-- | Convenience function for @second@ with a @Kleisli@ arrow.
secondM ∷ Monad m ⇒ (b → m c) → (a, b) → m (a, c)
secondM = unkleislify second

-- | Convenience function for @(***)@ on 'Kleisli' arrows.