  Cartesian differential categories are categories equipped with a differential
combinator which axiomatizes the directional derivative. Important models of
Cartesian differential categories include classical differential calculus of
smooth functions and categorical models of the differential lambda-calculus.
However, Cartesian differential categories cannot account for other interesting
notions of differentiation such as the calculus of finite differences or the
Boolean differential calculus. On the other hand, change action models have
been shown to capture these examples as well as more "exotic" examples of
differentiation. However, change action models are very general and do not
share the nice properties of a Cartesian differential category. In this paper,
we introduce Cartesian difference categories as a bridge between Cartesian
differential categories and change action models. We show that every Cartesian
differential category is a Cartesian difference category, and how certain
well-behaved change action models are Cartesian difference categories. In
particular, Cartesian difference categories model both the differential
calculus of smooth functions and the calculus of finite differences.
Furthermore, every Cartesian difference category comes equipped with a tangent
bundle monad whose Kleisli category is again a Cartesian difference category.
