anchor.diff:  %%
   %% @throws {error, 400}
   %%
  -filter(Filters, {struct, L} = _Object) when is_list(Filters) ->
  +filter(Filters, JsonObject) when is_list(Filters) ->
   	Filters1 = case lists:member($(, Filters) of
   		true ->
   			expand(Filters, []);
  
positive.code: 						false
  			end,
  			NewFilters = lists:dropwhile(F2, Filters),
  			filter2(NewFilters, L1, NewAcc);
  		_ ->
  			throw({error, 400})
  	end;
  filter2([{[], []} | T], L, Acc) ->
  	filter2(T, L, Acc);
  filter2([], _, Acc) ->
  	lists:reverse(Acc).
  %% @hidden
  filter3(struct, Filters, L1) ->
  	{struct, filter2(Filters, L1, [])};
  filter3(array, Filters, L1) ->
  	{array, filter4(Filters, L1, [])}.
  %% @hidden
  filter4(Filters, [{struct, L1} | T], Acc) ->
  	NewAcc = case filter5(Filters, L1, []) of
  
negative.code: 				false
  	end,
  	Filters5 = lists:sort(Fsort, Filters4),
  	filter1(Filters5, JsonObject, []).
  
  -spec range(Range) -> Result
  	when
  