anchor.diff:          ?_assertEqual(d, deep_get([a, c], ?STRUCT, d)),
           ?_assertEqual(1, deep_get([a, a, a], ?STRUCT, default)),
           ?_assertEqual(default, deep_get([a, b, c], ?STRUCT, default)),
  -        ?_assertEqual(?STRUCT, deep_get([], ?STRUCT))
  -        | error_(fun(Path, Map) -> deep_get(Path, Map) end)
  +        ?_assertEqual(?STRUCT, deep_get([], ?STRUCT)),
  +        ?_badarg(deep_get),
  +        ?_badvalue(deep_get),
  +        ?_badkey(deep_get)
       ]}.
   
   deep_put_test_() ->
  
positive.code:         ?_assertExit(
              badarg,
              deep_update_with([a], fun() -> foo end, ?STRUCT)
          )
          | error_(fun(P, M) -> deep_update_with(P, Incr, M) end)
      ]}.
  
  deep_update_with_init_test_() ->
  
negative.code:         ?_assertExit(
              badarg,
              deep_update_with([a], fun() -> foo end, 0, ?STRUCT)
          ),
          ?_badarg(fun(P, M) -> deep_update_with(P, Incr, 0, M) end),
          ?_badvalue(fun(P, M) -> deep_update_with(P, Incr, 0, M) end)
      ]}.
  
  deep_remove_test_() ->
      {inparallel, [
  