In Control.Arrow we have:
leftApp :: ArrowApply a => a b c -> a (Either b d) (Either c d)
Any instance of
ArrowApply
can be made into an instance ofArrowChoice
by definingleft = leftApp
.
So why isn't ArrowChoice
a parent of ArrowApply
?
Best regards,
Petr