
  [;1m-spec relation(Tuples) -> Relation[0m
  [;1m                  when Relation :: relation(), Tuples :: [tuple()].[0m

  Equivalent to [;;4mrelation(Tuples, Type)[0m where [;;4mType[0m is the size of
  the first tuple of [;;4mTuples[0m is used if there is such a tuple.

  If tuples is [;;4m[][0m, then [;;4mType[0m is [;;4m2[0m.

  [;1m-spec relation(Tuples, Type) -> Relation[0m
  [;1m                  when[0m
  [;1m                      N :: integer(),[0m
  [;1m                      Type :: N | type(),[0m
  [;1m                      Relation :: relation(),[0m
  [;1m                      Tuples :: [tuple()].[0m

  Creates a relation. [;;4mrelation(R, T)[0m is equivalent to [;;4m[0m
  [;;4mfrom_term(R, T)[0m, if T is a type and the result is a relation.

  If [;;4mType[0m is an integer N, then [;;4m[{atom, ..., atom}])[0m, where the
  tuple size is N, is used as type of the relation.
