anchor.diff:  
   %%
   
  -maybe_reroot(Roots) when is_list(Roots) ->
  +maybe_reroot({reinsert, Nodes, Root}, Params) ->
  +    insert_bulk(Nodes, Root, setelement(4, Params, 0));
  +
  +maybe_reroot(Roots, _Params) when is_list(Roots) ->
       newnode(Roots);
   
  -maybe_reroot(Root) ->
  +maybe_reroot(Root, _Params) ->
       Root.
   
  -update_root(RStar, Root) ->
  -    setelement(3, RStar, maybe_reroot(Root)).
  +update_root(RStar, Root, Params) ->
  +    setelement(3, RStar, maybe_reroot(Root, Params)).
   
   %%
   
  
positive.code: pick_node(_False, Bound, Nodes, _Params) ->
      needs_least(area, Bound, Nodes).
  
  insert_child(List, Node, Params) when is_list(List) ->
      insert_children(List, Node, Params);
  
  insert_child(Child, {_, _, Children}, Params = {_, MaxCap, _, _}) when length(Children) + 1 > MaxCap ->
      split_nodes([Child | Children], Params);
  
  insert_child(Child, {_, Bound, Children}, _Params) ->
      newnode(erstar_bound:unify(Bound, bound(Child)), [Child | Children]).
  
  insert_children(Cs, {_, _, CsWere}, Params = {_, MaxCap, _, _}) when length(Cs) + length(CsWere) > MaxCap ->
      split_nodes(Cs ++ CsWere, Params);
  
  insert_children(Cs, {_, Bound, CsWere}, _Params) ->
      NowBound = unify_bounds(Cs, Bound),
      newnode(NowBound, Cs ++ CsWere).
  
  
negative.code:     is_integer(MinCap), MinCap > 1,
      is_integer(MaxCap), MaxCap >= 2 * MinCap,
      is_integer(ChooseCutout), ChooseCutout > 0,
      is_integer(ReinsertCount), ReinsertCount >= 0, ReinsertCount < MaxCap ->
      {?MODULE, {MinCap, MaxCap, ChooseCutout, ReinsertCount}, newnode()}.
  
  %%
  