Defines functors, monads, etc over arbitrary categories rather than just endofunctors on
the category of types. Also introduces the notion of a category transformer, which
generalizes the notion of an Arrow transformer. Using categories in this fashion we can
reconstruct BiArrows correctly without any flotsam in the type, and we can similarly
construct a number of other useful notions from category theory that do not form Arrows.
|