
  -spec relative_product(ListOfBinRels) -> BinRel2
                            when
                                ListOfBinRels :: [BinRel, ...],
                                BinRel :: binary_relation(),
                                BinRel2 :: binary_relation().

  If ListOfBinRels is a non-empty list [R[1], ..., R[n]] of binary
  relations and BinRel1 is a binary relation, then BinRel2 is
  the relative product of the ordered set (R[i], ..., R[n]) and 
  BinRel1.

  If BinRel1 is omitted, the relation of equality between the
  elements of the Cartesian product of the ranges of R[i],
  range R[1] × ... × range R[n], is used instead (intuitively,
  nothing is "lost").

    1> TR = sofs:relation([{1,a},{1,aa},{2,b}]),
    R1 = sofs:relation([{1,u},{2,v},{3,c}]),
    R2 = sofs:relative_product([TR, R1]),
    sofs:to_external(R2).
    [{1,{a,u}},{1,{aa,u}},{2,{b,v}}]

  Notice that relative_product([R1], R2) is different from 
  relative_product(R1, R2); the list of one element is not
  identified with the element itself.
