anchor.diff:      {noreply, State}.
   
   terminate(_Reason, #state{tab=Tab}) ->
  -    ets:foldl(fun(#proc{pid=P}, _) -> couch_util:shutdown_sync(P) end, 0, Tab),
  +    ets:foldl(fun(#proc_int{pid=P}, _) -> couch_util:shutdown_sync(P) end, 0, Tab),
       ok.
   
   code_change(_OldVsn, #state{tab = Tab} = State, _Extra) ->
  -    NewTab = ets:new(procs, [ordered_set, {keypos, #proc.pid}]),
  +    NewTab = ets:new(procs, [ordered_set, {keypos, #proc_int.pid}]),
       true = ets:insert(NewTab, ets:tab2list(Tab)),
       true = ets:delete(Tab),
       {ok, State#state{tab = NewTab}}.
  
positive.code:     Lang = couch_util:to_binary(
              couch_util:get_value(<<"language">>, Props, <<"javascript">>)),
      IterFun = fun(Proc, Acc) ->
          case lists:member(DDocKey, Proc#proc.ddoc_keys) of
              true ->
                  {stop, assign_proc(State#state.tab, ClientPid, Proc)};
              false ->
  
negative.code: iter_procs(Tab, Lang, Fun, Acc) when is_list(Lang) ->
      iter_procs(Tab, list_to_binary(Lang), Fun, Acc);
  iter_procs(Tab, Lang, Fun, Acc) ->
      Pattern = #proc_int{lang=Lang, client=nil, _='_'},
      MSpec = [{Pattern, [], ['$_']}],
      case ets:select_reverse(Tab, MSpec, 25) of
          '$end_of_table' ->
  