anchor.diff:  %%%===================================================================
   
   init([DataRoot]) ->
  -    process_flag(trap_exit, true),
       schedule_tick(),
       Tree = hashtree_tree:new(cluster_meta, [{data_dir, DataRoot}, {num_levels, 2}]),
       State = #state{tree=Tree,
  
positive.code: handle_cast(_Msg, State) ->
      {noreply, State}.
  
  handle_info({'EXIT', BuiltPid, normal}, State=#state{built=BuiltPid}) ->
      State1 = build_done(State),
      {noreply, State1};
  handle_info({'EXIT', BuiltPid, _}, State=#state{built=BuiltPid}) ->
      State1 = build_error(State),
      {noreply, State1};
  handle_info({'EXIT', _, normal}, State) -> %% compare or update process
      {noreply, State};
  handle_info({'DOWN', LockRef, process, _Pid, _Reason}, State=#state{lock={_, LockRef}}) ->
      State1 = release_lock(State),
      {noreply, State1};
  
negative.code:           %% the tree managed by this process
            tree  :: hashtree_tree:tree(),
  
            %% whether or not the tree has been built or a monitor ref
            %% if the tree is being built
            built :: boolean() | reference(),
  
            %% a monitor reference for a process that currently holds a
            %% lock on the tree. undefined otherwise
  