
  -spec partition(SetFun, Set) -> Partition
                     when
                         SetFun :: set_fun(),
                         Partition :: a_set(),
                         Set :: a_set().

  Returns the partition of Set such that two elements are
  considered equal if the results of applying SetFun are equal.

    1> Ss = sofs:from_term([[a],[b],[c,d],[e,f]]),
    SetFun = fun(S) -> sofs:from_term(sofs:no_elements(S)) end,
    P = sofs:partition(SetFun, Ss),
    sofs:to_external(P).
    [[[a],[b]],[[c,d],[e,f]]]
