anchor.diff:  % Replace the actors and groups of an ace
   % PUT {objects|groups|actors|containers}/:id/acl/:action
   %
  --spec set_ace_for_resource(requestor_id(), resource_type(), binary(), access_method(), authz_ace()) -> ok|{error, any()}.
  +-spec set_ace_for_resource(requestor_id(),
  +                           object,
  +                           object_id(),
  +                           access_method(),
  +                           authz_ace()) -> ok |
  +                                           {error, any()}.
   set_ace_for_resource(RequestorId, ResourceType, Id, AccessMethod, #authz_ace{actors=Actors, groups=Groups}) ->
       Url = make_url([pluralize_resource(ResourceType), Id, acl, AccessMethod]),
       Body = jiffy:encode({[{<<"actors">>, Actors}, {<<"groups">>, Groups}]}),
  
positive.code: %%%
  %%% merge_acl_from_container
  %%% TODO: consider error cases in more detail
  -spec merge_acl_from_container(requestor_id(), binary(), object_id()) -> ok.
  merge_acl_from_container(RequestorId, ContainerId, ObjectId) ->
      case get_acl_for_resource(RequestorId, container, ContainerId) of
          {ok, CAcl} ->
              case get_acl_for_resource(RequestorId, object, ObjectId) of
                  {ok, OAcl} ->
                      NAcl = merge_acl(CAcl, OAcl),
                      [ok = set_ace_for_resource(RequestorId, object, ObjectId,  Method, Ace) ||
                          {Method, Ace} <- NAcl],
                      ok;
                  Error ->
                      error_logger:error_msg("Error fetching ACL on object ~p for requestor ~p: ~p~n",
                                             [ObjectId, RequestorId, Error]),
  
negative.code: %% with the ACL for `ContainerAId' will be merged into the ACL for the new object.
  %%
  %% TODO: consider error cases in more detail
  -spec create_object_with_container_acl(requestor_id(), object_id()) -> {ok, object_id()} |
                                                                         {error, forbidden}.
  create_object_with_container_acl(RequestorId, ContainerAId) ->
      {ok, ObjectId} = create_resource(RequestorId, object),
      case merge_acl_from_container(RequestorId, ContainerAId, ObjectId) of
  