anchor.diff:    end.
   
   %%=============================================================================
  -%% @doc
  -%% private
  +%% @doc Returns `true' if given values (instance) are equal, otherwise `false'
  +%% is returned.
  +%%
  +%% Two instance are consider equal if they are both of the same type
  +%% and:
  +%%
  +%%    are null; or
  +%%
  +%%    are booleans/numbers/strings and have the same value; or
  +%%
  +%%    are arrays, contains the same number of items, and each item in
  +%%    the array is equal to the corresponding item in the other array;
  +%%    or
  +%%
  +%%    are objects, contains the same property names, and each property
  +%%    in the object is equal to the corresponding property in the other
  +%%    object.
  +%% @private
   is_equal(Value1, Value2) ->
     case is_json_object(Value1) andalso is_json_object(Value2) of
       true  -> compare_objects(Value1, Value2);
  
positive.code:            end,
    lists:filter(Filter, ExtraNames).
  
  %% @doc
  %% @private
  check_items(Value, Items, JsonSchema) when is_list(Items) ->
    Tuples = case length(Value) - length(Items) of
               0 ->
                 lists:zip(Value, Items);
               NExtra when NExtra > 0 ->
                 case get_path(?ADDITIONALITEMS, JsonSchema) of
                   [] ->
                     [];
  
negative.code:         , {max_items, MaxItems}
          }).
  
  %% @doc 5.15.  uniqueItems
  %%
  %% This attribute indicates that all items in an array instance MUST be
  %% unique (contains no two identical values).
  %%
  %% Two instance are consider equal if they are both of the same type
  %% and:
  %%
  %%    are null; or
  %%
  %%    are booleans/numbers/strings and have the same value; or
  %%
  %%    are arrays, contains the same number of items, and each item in
  %%    the array is equal to the corresponding item in the other array;
  %%    or
  %%
  %%    are objects, contains the same property names, and each property
  %%    in the object is equal to the corresponding property in the other
  %%    object.
  %% @private
  check_unique_items(Value, true = Uniqueitems) ->
    lists:foldl( fun(_Item, []) ->
  