anchor.diff:          ?_assertExit(
               badarg,
               deep_update_with([a], fun() -> foo end, ?STRUCT)
  -        )
  -        | error_(fun(P, M) -> deep_update_with(P, Incr, M) end)
  +        ),
  +        ?_badarg(fun(P, M) -> deep_update_with(P, Incr, M) end),
  +        ?_badvalue(fun(P, M) -> deep_update_with(P, Incr, M) end),
  +        ?_badkey(fun(P, M) -> deep_update_with(P, Incr, M) end)
       ]}.
   
   deep_update_with_init_test_() ->
  
positive.code:         ?_assertExit(
              badarg,
              deep_update_with([a], fun() -> foo end, 0, ?STRUCT)
          )
          | error_init_(fun(P, M) -> deep_update_with(P, Incr, 0, M) end)
      ]}.
  
  error_(Function) ->
      [
          ?_assertError({badkey, [b]}, Function([b], #{a => 1})),
          ?_assertError({badkey, [b, x]}, Function([b, x], ?STRUCT))
          | error_init_(Function)
      ].
  
  error_init_(Function) ->
      [
          ?_assertError({badmap, foobar}, Function([a], foobar)),
          ?_assertError({badpath, foobar}, Function(foobar, #{a => 1})),
          ?_assertError({badvalue, [d]}, Function([d, x], ?STRUCT))
      ].
  
  deep_remove_test_() ->
      {inparallel, [
  
negative.code:     inverse/2
  ]).
  
  -define(_badarg(Function),
      ?_assertError({badmap, foobar}, (Function)([a], foobar)),
      ?_assertError({badpath, foobar}, (Function)(foobar, #{a => 1}))
  ).
  
  -define(_badvalue(Function),
      ?_assertError({badvalue, [d]}, (Function)([d, x], ?STRUCT)),
      ?_assertError({badvalue, [a, b]}, (Function)([a, b, c], ?STRUCT))
  ).
  
  -define(_badkey(Function),
      ?_assertError({badkey, [b]}, (Function)([b], #{a => 1})),
      ?_assertError({badkey, [b, x]}, (Function)([b, x], ?STRUCT))
  ).
  
  %--- Tests --------------------------------------------------------------------
  
  deep_find_test_() ->
  