anchor.diff:  
   exists(F, Seq) ->
       find_internal(seq(Seq), F) =/= undefined.
  +
  +exists2(F, Seq1, Seq2) ->
  +    find2_internal(F, seq(Seq1), seq(Seq2)) =/= undefined.
  +
  +exactlyOne(Seq0) ->
  +    case next(seq(Seq0)) of
  +        finished ->
  +            throw_arg_exn();
  +        {Item, Seq} ->
  +            case next(Seq) of
  +                finished ->
  +                    Item;
  +                _ ->
  +                    throw_arg_exn()
  +            end
  +    end.
   
   filter(Pred, Seq) ->
       {seq, {filter, Pred, seq(Seq)}}.
  
positive.code:             {Item, {concat, Enum, Sources0}}
      end;
  
  next({iter, N, N, _Gen}) ->
      finished;
  next({iter, Count, Num, Gen}) ->
      {Gen(Count), {iter, Count+1, Num, Gen}};
  
  next({delay, F}) ->
      next(seq(F()));
  
negative.code:     undefined = tryPick(Picker, []),
      ok.
  
  exists2_test() ->
      S1 = [1,2,3],
      S2 = [1,2,3,4],
      Pred = fun(2, 2) -> true;
                (_, _) -> false
             end,
      true = exists2(Pred, S1, S2),
      false = exists2(Pred, S1, []),
      ok.
  
  head_test() ->
      1 = head([1,2,3]),
      ?assertException(throw, {'System.ArgumentException', _}, head([])),
  