<div dir="auto"><div dir="auto">Let's see if any of these are useful (a lot more at <a href="https://ghc.haskell.org/trac/ghc/ticket/13026">https://ghc.haskell.org/trac/ghc/ticket/13026</a>)</div><div dir="auto"><br></div><div dir="auto">(||||) :: (f a -> b) -> (g a -> b) -> ((Sum f g) a -> b) </div><div dir="auto">f |||| g = \case </div><div dir="auto">  InL fa -> f fa </div><div dir="auto">  InR ga -> g ga </div><div dir="auto"><br></div><div dir="auto">(&&&&) :: (a -> f b) -> (a -> g b) -> (a -> (Product f g) b) </div><div dir="auto">(f &&&& g) a = f a `Pair` g a <br></div><div dir="auto"><br></div><div dir="auto">I couldn't think of any for Data.Functor.Compose, names are up for bikeshedding</div></div>