anchor.diff:  del_(Obj, <<"-">>) when is_list(Obj) ->
       {ok, lists:droplast(Obj)};
   
  -del_(Obj, Field) when is_list(Obj) andalso is_integer(Field) ->
  +del_(Obj, Field) when is_list(Obj) andalso is_integer(Field)
  +                      andalso length(Obj) >= Field andalso Field >= 0->
       Result = case lists:split(Field, Obj) of
                    {[], [_|T]} -> T;
                    {H1, [_|T]} -> H1 ++ T;
  
positive.code:         Other -> Other
      end.
  
  remove(Obj, [Field]) ->
      case get_(Obj, Field) of
          {ok, _FieldObj} ->
  
negative.code: set_(Obj, Field, Value) when ?IS_DICT(Obj) ->
      {ok, set_element(Obj, Field, Value)};
  
  set_(Obj, Field, Value) when is_list(Obj) andalso is_integer(Field)
                               andalso length(Obj) >= Field andalso Field >= 0->
      Result = case lists:split(Field, Obj) of
                   {[], [_|T]} -> [Value] ++ T;
                   {H1, [_|T]} -> H1 ++ [Value] ++ T;
  