runSum :: Sum f g a -> Either (f a) (g a) runSum = Left |||| Right runProduct :: Product f g a -> (f a, g a) runProduct (Pair fa ga) = (fa, ga)
I found one for ‘Data.Functor.Compose’
o :: Functor m => (b -> n c) -> (a -> m b) -> (a -> Compose m n c) o f g = Compose . fmap f . g