anchor.diff:                                O ->
                                    O
                              end,
  +   
      NewVariableTupleMatch = get_variable_tuple(Ctx20),
   
      TempStreamVar = {var,?L,next_var_name()},
  
positive.code:          "   _@@CollMatch, Split = _@Flatten, Rest = _@Rest,",
           "   '@FunctionName@'(Ctx,Split,Rest)."]),
     GrpFun2 =
       ?P(["'@FunctionName@'(_Ctx,_@OutgoingVarTup,_@CollNT) -> _@ToGroupTuple;",
           "'@FunctionName@'(_Ctx,Split,_@OuterTups) -> ",
           "   Grouped = xqerl_flwor:groupbyclause(Split), ",
           "   [_@OutgoingVarTup || _@OutputTuple <- Grouped]."]),
     {Ctx,[GrpFun1,GrpFun2]}.
  
  let_part(Ctx,{'let',#xqVar{id = Id,
                             name = Name,
                             type = Type,
                             expr = Expr,
                             anno = Line},
                AType} = Part,NextFunAtom,IsList) ->
     _ = set_line(Line),
     VarName = local_variable_name(Id),
     NewVar  = {Name,Type,[],VarName},
     FunctionName = glob_fun_name(Part),
     LocCtx = set_context_variable_name(Ctx, '__Ctx'),
     NewCtx  = add_grouping_variable(NewVar, Ctx),
     OldVariableTupleMatch = case get_variable_tuple(Ctx) of
                                {nil,_} ->
                                   {var,?L, '_'};
  
negative.code:                            position = #xqPosVar{id = PId, 
                                                  name = PName},
                             anno = Line},
                AType} = Part, NextFunAtom, IsList, Rem) ->
     _ = set_line(Line),
     VarName = local_variable_name(Id),
     NewVar    = {Name,Type,[],VarName},
  