
  [;1m-spec family_intersection(Family1) -> Family2[0m
  [;1m                             when[0m
  [;1m                                 Family1 :: family(),[0m
  [;1m                                 Family2 :: family().[0m

  If [;;4mFamily1[0m is a family and [;;4mFamily1[0m[i] is a set of sets for
  every i in the index set of [;;4mFamily1[0m, then [;;4mFamily2[0m is the
  family with the same index set as [;;4mFamily1[0m such that [;;4mFamily2[0m[i]
  is the intersection of [;;4mFamily1[0m[i].

  If [;;4mFamily1[0m[i] is an empty set for some i, the process exits with
  a [;;4mbadarg[0m message.

    1> F1 = sofs:from_term([{a,[[1,2,3],[2,3,4]]},{b,[[x,y,z],[x,y]]}]),
    F2 = sofs:family_intersection(F1),
    sofs:to_external(F2).
    [{a,[2,3]},{b,[x,y]}]
