cartesian -package:monoidal-functors

The Cartesian coordinate system. Coordinates are (x,y,z).
Quite a few categories (monoidal categories) will permit "products" of objects as objects again – in the Haskell sense those are tuples – allowing for "dyadic morphisms" (x,y) ~> r. Together with a unique UnitObject, this makes for a monoidal structure, with a few natural isomorphisms. Ordinary tuples may not always be powerful enough to express the product objects; we avoid making a dedicated associated type for the sake of simplicity, but allow for an extra constraint to be imposed on objects prior to consideration of pair-building. The name Cartesian is disputable: in category theory that would rather Imply cartesian closed category (which we represent with Curry). Monoidal would make sense, but we reserve that to Functors.
Not on Stackage, so not searched. Coordinate systems
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.