anchor.diff:      [1,2,3] = toList(Low),
       ok.
   
  +distinct_test() ->
  +    Seq = [1,2,3,3,2,1],
  +    [1,2,3] = toList(distinct(Seq)),
  +    [1,2,3] = toList(distinctBy(fun id/1, Seq)),
  +
  +    ok.
   
   
   -endif.
  
positive.code:                 aggregate(Enum, {1, F(Item)}, Aggr)
          end,
      Total / Num.
  
  empty() ->
      {seq, {list, []}}.
  
negative.code:                                       [Item], Groups0),
              group_by(F, Groups, Seq)
      end.
  
  distinct_by(KeyF, Items, Seq0) ->
      case next(Seq0) of
          finished ->
              lists:reverse(Items);
          {Item, Seq} ->
              case lists:member(KeyF(Item), Items) of
                  true ->
                      distinct_by(KeyF, Items, Seq);
                  false ->
                      distinct_by(KeyF, [Item | Items], Seq)
              end
      end.
  
  
  
  next({seq, Enum}) ->
  