cartesian -package:constrained-categories

The Cartesian coordinate system. Coordinates are (x,y,z).
Not on Stackage, so not searched. Coordinate systems
A Category equipped with a Tensor t where the Tensor unit i is the terminal object in cat and thus every object a is equipped with a morphism <math>, which we call kill.

Laws

fwd unitl . glmap kill . splitid
fwd unitr . grmap kill . splitid
Calculate the Cartesian product of two sets.
cartesianProduct xs ys = fromList $ liftA2 (,) (toList xs) (toList ys)
Example:
cartesianProduct (fromList [1,2]) (fromList ['a','b']) =
fromList [(1,'a'), (1,'b'), (2,'a'), (2,'b')]
Compute the Cartesian product of two sets, applying a function to each resulting pair.
Slightly unfair 2-way Cartesian product: given two (possibly infinite) lists, produce a single list such that whenever v and w have finite indices in the input lists, (v,w) has finite index in the output list. Lower indices occur as the fst part of the tuple more frequently, but not exponentially so.
Calculate the Cartesian product of two sets.
cartesianProduct xs ys = fromList $ liftA2 (,) (toList xs) (toList ys)
Example:
cartesianProduct (fromList (1:|[2])) (fromList ('a':|['b'])) =
fromList ((1,'a') :| [(1,'b'), (2,'a'), (2,'b')])
Returns the three Cartesian coordinates as a triple from a position.
Cartesian product of two sets. The elements are all pairs (x, y) for each x from s and for each y from t.
Very unfair 2-way Cartesian product: same guarantee as the slightly unfair one, except that lower indices may occur as the fst part of the tuple exponentially more frequently.
A unit ball, centered at the origin. Specified in Cartesian coordinates.
The standard Cartesian coordinate system
A Category equipped with a Tensor t where the Tensor unit i is the initial object in cat and thus every object a is equipped with a morphism <math>, which we call spawn.

Laws

merge . glmap spawn . bwd unitlid
merge . grmap spawn . bwd unitrid
A Category is Semicartesian if it is equipped with a Symmetric bifunctor t and each object comes equipped with a diagonal morphism <math>, which we call split.

Laws

grmap split . splitbwd assoc . glmap split . split
glmap split . splitfwd assoc . grmap split . split
A Category is Semicocartesian if it is equipped with a Symmetric type operator t and each object comes equipped with a morphism <math>, which we call merge.

Laws

merge . grmap mergemerge . glmap merge . fwd assoc
merge . glmap mergemerge . grmap merge . bwd assoc