anchor.diff:  -export([get_os_process/1, ret_os_process/1]).
   
   -include_lib("couch/include/couch_db.hrl").
  +
  +-define(SUMERROR, <<"The _sum function requires that map values be numbers, "
  +    "arrays of numbers, or objects. Objects cannot be mixed with other data "
  +    "structures. Objects can be arbitrarily nested, provided that the values "
  +    "for all fields are themselves numbers, arrays of numbers, or objects.">>).
   
   % https://gist.github.com/df10284c76d85f988c3f
   -define(SUMREGEX, {re_pattern,3,0,<<69,82,67,80,194,0,0,0,8,0,0,0,5,0,0,0,3,0,
  
positive.code:     true = gen_server:call(couch_proc_manager, {ret_proc, Proc}, infinity),
      catch unlink(Proc#proc.pid),
      ok.
  
negative.code:     builtin_reduce(Re, BuiltinReds, KVs, [Stats|Acc]).
  
  builtin_sum_rows(KVs) ->
      lists:foldl(fun([_Key, Value], Acc) -> sum_values(Value, Acc) end, 0, KVs).
  
  sum_values({Props}, {AccProps}) ->
      {sum_objects(lists:sort(Props), lists:sort(AccProps))};
  sum_values(Value, Acc) when is_number(Value), is_number(Acc) ->
      Acc + Value;
  sum_values(Value, Acc) when is_list(Value), is_list(Acc) ->
      sum_arrays(Acc, Value);
  sum_values(Value, Acc) when is_number(Value), is_list(Acc) ->
      sum_arrays(Acc, [Value]);
  sum_values(Value, Acc) when is_list(Value), is_number(Acc) ->
      sum_arrays([Acc], Value);
  sum_values(_Else, _Acc) ->
      throw({invalid_value, ?SUMERROR}).
  
  sum_objects([{K1, V1} | Rest1], [{K1, V2} | Rest2]) ->
      [{K1, sum_values(V1, V2)} | sum_objects(Rest1, Rest2)];
  sum_objects([{K1, V1} | Rest1], [{K2, V2} | Rest2]) when K1 < K2 ->
      [{K1, V1}, {K2, V2} | sum_objects(Rest1, Rest2)];
  sum_objects([{K1, V1} | Rest1], [{K2, V2} | Rest2]) when K1 > K2 ->
      [{K2, V2}, {K1, V1} | sum_objects(Rest1, Rest2)];
  sum_objects([], Rest) ->
      Rest;
  sum_objects(Rest, []) ->
      Rest.
  
  sum_arrays([], []) ->
      [];
  sum_arrays([_|_]=Xs, []) ->
      Xs;
  sum_arrays([], [_|_]=Ys) ->
      Ys;
  sum_arrays([X|Xs], [Y|Ys]) when is_number(X), is_number(Y) ->
      [X+Y | sum_arrays(Xs,Ys)];
  sum_arrays(_, _) ->
      throw({invalid_value, ?SUMERROR}).
  
  
  builtin_stats(reduce, [[_,First]|Rest]) ->
  