This section is about functions that operates on arbitrary sets.
A function that maps two sets to a third set.
A Cartesian product that carries over some extra structure of the input groups.
E.g. the direct product of groups carries over group structure on both sides.