anchor.diff:  %%--------------------------------------------------------------------
   %% @doc A privilege level of a handle user.
   %%--------------------------------------------------------------------
  --spec handle_user() -> [handle_privilege()].
  +-spec handle_user() -> privileges(handle_privilege()).
   handle_user() ->
  -    [view_handle].
  +    from_list([view_handle]).
   
   %%--------------------------------------------------------------------
   %% @doc A privilege level of a handle administrator. This level contains all
   %% atoms representing handle privileges.
   %% @end
   %%--------------------------------------------------------------------
  --spec handle_admin() -> [handle_privilege()].
  +-spec handle_admin() -> privileges(handle_privilege()).
   handle_admin() ->
  -    ordsets:union(
  -        handle_user(),
  -        ordsets:from_list([
  -            list_handles,
  -            delete_handle,
  -            modify_handle,
  -            view_handle
  -        ])
  -    ).
  +    union(handle_user(), [
  +        list_handles,
  +        delete_handle,
  +        modify_handle,
  +        view_handle
  +    ]).
   
   %%--------------------------------------------------------------------
   %% @doc All atoms representing handle privileges.
   %% @equiv handle_admin()
   %%--------------------------------------------------------------------
  --spec handle_privileges() -> [handle_privilege()].
  +-spec handle_privileges() -> privileges(handle_privilege()).
   handle_privileges() ->
       handle_admin().
   
  
positive.code: %%--------------------------------------------------------------------
  %% @doc A privilege level of a group user.
  %%--------------------------------------------------------------------
  -spec group_user() -> [group_privilege()].
  group_user() ->
      [group_view_data].
  
  %%--------------------------------------------------------------------
  %% @doc A privilege level of a group manager.
  %%--------------------------------------------------------------------
  -spec group_manager() -> [group_privilege()].
  group_manager() ->
      ordsets:union(
          group_user(),
          ordsets:from_list([
              group_invite_user,
              group_remove_user,
              group_invite_group,
              group_remove_group
          ])
      ).
  
  %%--------------------------------------------------------------------
  %% @doc A privilege level of a group administrator. This level contains all
  %% atoms representing group privileges.
  %% @end
  %%--------------------------------------------------------------------
  -spec group_admin() -> [group_privilege()].
  group_admin() ->
      ordsets:union(
          group_manager(),
          ordsets:from_list([
              group_create_space,
              group_create_space_token,
              group_join_space,
              group_leave_space,
              group_set_privileges,
              group_change_data,
              group_remove,
              group_join_group
          ])
      ).
  
  %%--------------------------------------------------------------------
  %% @doc All atoms representing group privileges.
  %% @equiv group_admin()
  %%--------------------------------------------------------------------
  -spec group_privileges() -> [group_privilege()].
  group_privileges() ->
      group_admin().
  
  
negative.code: list_providers | list_providers_of_space.
  
  -export_type([
      privileges/1,
      space_privilege/0,
      group_privilege/0,
      handle_service_privilege/0,
  