anchor.diff:              A#page{e = AE}
           end,
         BPageId = page_allocate(IO),
  -      B = #page{pageid = BPageId, p0 = V#item.p, e = BE},
  +      B = #page{pageid = BPageId, p0 = item_p(V), e = BE},
         page_write(IO, A2),
         page_write(IO, B),
  -      insert(IO, N, A2#page.pageid, V#item{p = BPageId}, Path)
  +      insert(IO, N, A2#page.pageid, item_set_p(V, BPageId), Path)
     end.
   
   split(N, U, E, R) ->
  
positive.code: 
  print_page(IO, #page{p0 = P0, e = E}, L) ->
    [io:format("     ") || _I <- lists:seq(1, L)],
    [io:format(" ~4w", [(element(I, E))#item.k]) || I <- lists:seq(1, size(E))],
    io:format("~n"),
    print_pageid(IO, P0, L + 1),
    [print_pageid(IO, (element(I, E))#item.p, L + 1) || I <- lists:seq(1, size(E))],
    ok.
  
  %%%_* Emacs ====================================================================
  
negative.code: 
  all_keys_elements(_IO, E, I, L) when I > size(E) -> L;
  all_keys_elements(IO, E, I, L) ->
    ?item(K, P) = element(I, E),
    all_keys_elements(IO, E, I + 1, all_keys_pageid(IO, P, [K | L])).
  
  %%%_* Insertion into a B-tree ==================================================
  