Product types represent tuples formed as the cartesian product of types. They are often used to describe multiple value return types.
|t*||(types|... => <product>)||G|
|returns product type specifying the cross product of types.|
|product-elts||(x|<product> => <seq>)||G|
|types that product type matches.|