anchor.diff:  -type update_error() :: not_found_error(term()) | generic_error().
   -type create_error() :: generic_error() | {error, already_exists}.
   -type get_error() :: not_found_error(term()) | generic_error().
  -
  --export_type([generic_error/0, not_found_error/1, update_error/0, create_error/0, get_error/0]).
  +-type link_error() :: generic_error() | {error, link_not_found}.
  +
  +-export_type([generic_error/0, not_found_error/1, update_error/0, create_error/0, get_error/0, link_error/0]).
   
   %% API utility types
   -type store_level() :: disk_only | local_only | global_only | locally_cached | globally_cached.
  
positive.code:     exec_driver(ModelName, ?PERSISTENCE_DRIVER, add_links, [Key, normalize_link_target(Links)]).
  
  
  -spec delete_links(document(), link_name() | [link_name()] | all) -> ok | generic_error().
  delete_links(#document{key = Key} = Doc, LinkNames) ->
      delete_links(Key, model_name(Doc), LinkNames).
  
  -spec delete_links(key(), model_behaviour:model_type(), link_name() | [link_name()] | all) -> ok | generic_error().
  delete_links(Key, ModelName, LinkNames) when is_list(LinkNames); LinkNames =:= all ->
      _ModelConfig = ModelName:model_init(),
  
negative.code:     delete_links(Key, ModelName, [LinkName]).
  
  
  %%--------------------------------------------------------------------
  %% @doc
  %% Gets specified link from given document.
  %%--------------------------------------------------------------------
  -spec fetch_link(document(), link_name()) -> {ok, normalized_link_target()} | link_error().
  fetch_link(#document{key = Key} = Doc, LinkName) ->
      fetch_link(Key, model_name(Doc), LinkName).
  
  
  %%--------------------------------------------------------------------
  %% @doc
  %% Gets specified link from the document given by key.
  %%--------------------------------------------------------------------
  -spec fetch_link(key(), model_behaviour:model_type(), link_name()) ->
      {ok, normalized_link_target()} | generic_error().
  fetch_link(Key, ModelName, LinkName) ->
      _ModelConfig = ModelName:model_init(),
      exec_driver(ModelName, ?PERSISTENCE_DRIVER, fetch_link, [Key, LinkName]).
  
  
  %%--------------------------------------------------------------------
  %% @doc
  %% Gets document pointed by given link of given document.
  %%--------------------------------------------------------------------
  -spec fetch_link_target(document(), link_name()) -> {ok, document()} | generic_error().
  fetch_link_target(#document{key = Key} = Doc, LinkName) ->
      fetch_link_target(Key, model_name(Doc), LinkName).
  
  
  %%--------------------------------------------------------------------
  %% @doc
  %% Gets document pointed by given link of document given by key.
  %%--------------------------------------------------------------------
  -spec fetch_link_target(key(), model_behaviour:model_type(), link_name()) ->
      {ok, document()} | generic_error().
  fetch_link_target(Key, ModelName, LinkName) ->
  