anchor.diff:                      if WithPagesP ->
                               [{LastLPN, unpack_v1(FullPage, page)}|
                                scan_backward2(Proj, Stream,
  -                                            hd(BackPs), StopAtLPN,
  +                                            hd(BackPs), StopAtLPN, NumPages + 1,
                                               WithPagesP)];
                          true ->
                               SkipLPN = lists:last(BackPs),
  
positive.code:     scan_backward(Proj, Stream, LastLPN, 0, WithPagesP).
  
  scan_backward(Proj, Stream, LastLPN, StopAtLPN, WithPagesP) ->
      lists:reverse(scan_backward2(Proj, Stream, LastLPN, StopAtLPN, WithPagesP)).
  
  scan_backward2(_Proj, _Stream, LastLPN, StopAtLPN, _WithPagesP)
    when LastLPN =< StopAtLPN ->
      [];
  scan_backward2(Proj, Stream, LastLPN, StopAtLPN, WithPagesP) ->
      case corfurl:read_page(Proj, LastLPN) of
          {ok, FullPage} ->
              case proplists:get_value(Stream, unpack_v1(FullPage, stream_list)) of
                  undefined ->
                      {gah_fixme, lpn, LastLPN, unpack_v1(FullPage, stream_list)};
                  [] ->
                      if WithPagesP ->
                              [{LastLPN, unpack_v1(FullPage, page)}];
  
negative.code:                                               LPN > StopAtLPN],
                              [LastLPN] ++ AddLPNs ++
                                  scan_backward2(Proj, Stream,
                                                 SkipLPN, StopAtLPN, NumPages + 1,
                                                 WithPagesP)
                      end
              end;
  