A cartesian type is a generalized type product where one inhabitant, called origin is common to all the types involved (called axes). A cocartesian type is a generalized type sum with a common origin to all axes.
That is, A * ... * Z
is a cartesian type if there exists one inhabitant i
common to every axis — i_A = i_B = ... = i_Z
.