anchor.diff:  %%      by mochijson2.  Thus, a simple object looks something like:
   %%```
   %%      {struct,
  -%%       [{<<"bucket">>, foo},
  +%%       [{<<"bucket">>, <<"foo">>},
   %%        {<<"key">>, <<"123">>},
   %%        {<<"object">>,
   %%         {struct,
  
positive.code: %%            -> [{{atom(), binary()}, binary()}]
  %% @type link_tag() = term()|'_'
  %% @type link_bucket() = riak_object:bucket()|'_'
  %% @doc This function implements the map phase to which link map/reduce
  %%      specs are mapped.  The atom '_' means "match all", so for example,
  %%      {foo, '_'} would match all links to bucket 'foo' with any tag, while
  %%      {foo, bar} would match only links to bucket 'foo' with tag 'bar'.
  %%      The tags of the links will be included as the "KeyData" for the
  %%      bucket-key pair returned.
  %%      Keys that were inputs to this phase that reference non-existent
  %%      objects are ignored (i.e. {error,notfound} => []).
  mapreduce_linkfun({error, notfound}, _, _) -> [];
  mapreduce_linkfun(RiakObject, _, {Bucket, Tag}) ->
      %% TODO: could just pull links out of riak object directly, if that
  
negative.code: %%           {<<"bazField">>, 42},
  %%          ]}},
  %%        {<<"links">>,
  %%         [[<<"quuxLink">>, <<"quuxKey">>, <<"quuxTag">>],
  %%          [<<"abcLink">>, <<"abcKey">>, <<"abcTag">>]
  %%         ]},
  %%        {<<"vclock">>, <<"opaque-riak-vclock">>},
  %%        {<<"lastmod">>, <<"Mon, 03 Aug 2009 18:49:42 GMT">>}
  