anchor.diff:            %% the tree managed by this process
             tree  :: hashtree_tree:tree(),
   
  -          %% whether or not the tree has been built or a pid if the
  -          %% tree is being built
  -          built :: boolean() | pid(),
  +          %% 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
  
positive.code: %%%===================================================================
  
  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,
  
negative.code: 
  %% @private
  build_async(State) ->
      {_Pid, Ref} = spawn_monitor(fun build/0),
      State#state{built=Ref}.
  
  %% @private
  build() ->
  