idRightF :: F a b -> F (a ⊕ c) (b ⊕ c) idLeftF :: F c d -> F (b ⊕ c) (b ⊕ d) toBothF :: F b (b ⊕ b) throughF :: F c b -> F c (b ⊕ c) bypassF :: F a a -> F a a stubF :: F a b -> F c d
idRightF f = f >+< idF idLeftF f = idF >+< f throughF f = idRightF f >==< toBothF bypassF f = stripEither >^=< throughF f