anchor.diff:  
   
   as_json(RD, {ObjectType, Rec}=Ctx) when ?is_object(ObjectType) ->
  +    maybe_record_visit(RD, Ctx),
       CollectionType = obj_type_to_col_type(ObjectType),
       Key = atom_to_binary(CollectionType, latin1),
       Data = jsx:encode([{Key, erli_utils:to_proplist(Rec)}]),
  
positive.code: 	    #path{target_id=TargetId};
  	Id ->
  	    #path{target_id=TargetId, id=Id}
      end;
  build_record(visit, Form) ->
      PathId = proplists:get_value(<<"path_id">>, Form),
      Loc = erli_utils:get_location(proplists:get_value(<<"ip">>, Form)),
      #visit{path_id=PathId, geo_location=Loc}.
  
  
  -spec maybe_store(collection_type(), object(), #wm_reqdata{}, term()) ->
  
negative.code:     {false, RD, Ctx}.
  
  
  options(RD, {visits, _Range}=Ctx) ->
      {[{"Content-Length", "0"},
        {"Accept-Ranges", visits},
        {"Allow", "GET, HEAD, OPTIONS"}], RD, Ctx};
  options(RD, {CollectionType, _Range}=Ctx) ->
      ColType = atom_to_list(CollectionType),
      {[{"Content-Length", "0"},
        {"Accept-Ranges", ColType},
        {"Allow", "GET, POST, HEAD, OPTIONS"}], RD, Ctx};
  options(RD, visit=Ctx) ->
      {[{"Content-Length", "0"},
        {"Allow", "GET, HEAD, OPTIONS"}], RD, Ctx};
  options(RD, Ctx) ->
      {[{"Content-Length", "0"},
        {"Allow", "GET, DELETE, HEAD, OPTIONS"}], RD, Ctx}.
  