-- | Update the first component of a pair.
--
-- > firstM (\x -> [x-1, x+1]) (1,"test") == [(0,"test"),(2,"test")]
firstM :: Functor m => (a -> m a') -> (a, b) -> m (a', b)
firstM f (a,b) = (,b) <$> f a
firstM :: Functor m => (a -> m a') -> (a, b) -> m (a', b)
firstM f (a,b) = (,b) <$> f a
firstM f (a,b) = (,b) <$> f a