anchor.diff:          true ->
             From ! CurrentDoc
         end,
  -      file_loop(Registry, Dir, Type, Id);
  +      file_loop(Cloche, Dir, Type, Id);
   
       { From, do_delete, Rev } ->
         R = file:delete(DocPath),
         From ! R,
  -      file_loop(Registry, Dir, Type, Id)
  +      file_loop(Cloche, Dir, Type, Id)
   
     after 2000 ->
  -    Registry ! { delf, Type, Id }
  +    over
     end.
   
   %
  
positive.code: %
  % playing the role of a lock
  %
  file_loop(Registry, Dir, Type, Id) ->
  
    { TypePath, DocPath } = get_path(Dir, Type, Id),
  
    receive
  
      { touch } ->
        file_loop(Registry, Dir, Type, Id);
  
      { From, do_get } ->
        { _, _, _, Doc } = get_file(DocPath),
        From ! Doc,
        file_loop(Registry, Dir, Type, Id);
  
      { From, do_put, Doc, Rev } ->
        { _, _, CurrentRev, CurrentDoc } = get_file(DocPath),
  
negative.code:           put({ Type, Id }, Pid),
            From ! Pid;
          Pid ->
            case erlang:is_process_alive(Pid) of
              true ->
                Pid ! { touch },
                From ! Pid;
              false ->
                NewPid = spawn(fun() -> file_loop(self(), Dir, Type, Id) end),
                put({ Type, Id }, NewPid),
                From ! NewPid
            end
        end,
        file_registry_loop(Dir);
  
      shutdown ->
  