anchor.diff:  unfold(Gen, State) ->
       {seq, {unfold, Gen, State}}.
   
  +zip(Seq1, Seq2) ->
  +    {seq, {zip, seq(Seq1), seq(Seq2)}}.
  +
  +zip3(Seq1, Seq2, Seq3) ->
  +    {seq, {zip3, seq(Seq1), seq(Seq2), seq(Seq3)}}.
  +
   % casts lists (and others) to seq
   seq(L) when is_list(L) ->
       {seq, {list, L}};
  
positive.code:             finished;
          {Item, State} ->
              {Item, {unfold, Gen, State}}
      end.
  
  do_filter(P, Enum0) ->
  
negative.code:          unfold/2,
           %where/2,
           %windowed/2,
           zip/2,
           zip3/3,
           seq/1
          ]).
  
  