anchor.diff:           mark_pending_delete/2,
            mark_scheduled_delete/2,
            pending_delete_manifests/1,
  -         prune/1,
  -         prune/2,
            upgrade_wrapped_manifests/1,
            upgrade_manifest/1]).
   
  
positive.code: pending_delete_manifests(Manifests) ->
      lists:filter(fun pending_delete_manifest/1, Manifests).
  
  -spec prune(list(lfs_manifest())) -> list(lfs_manifest()).
  prune(Manifests) ->
      prune(Manifests, erlang:now()).
  
  -spec prune(list(lfs_manifest()), erlang:timestamp()) -> list(lfs_manifest()).
  prune(Manifests, Time) ->
      [KV || {_K, V}=KV <- Manifests, not (needs_pruning(V, Time))].
  
  upgrade_wrapped_manifests(ListofOrdDicts) ->
      DictMapFun = fun (_Key, Value) -> upgrade_manifest(Value) end,
      MapFun = fun (Value) -> orddict:map(DictMapFun, Value) end,
  
negative.code: most_recent_active_manifest(Man1=?MANIFEST{state=active}, _Man2) -> Man1;
  most_recent_active_manifest(_Man1, Man2=?MANIFEST{state=active}) -> Man2.
  
  pending_delete_manifest({_, ?MANIFEST{state=pending_delete,
                                        last_block_deleted_time=undefined}}) ->
      true;
  