anchor.diff:           }). 
   -type stats() :: #rr_recon_stats{}.
   
  --type stats_types() :: non_neg_integer() | 
  -                       merkle_tree:mt_size() | 
  -                       rrepair:session_id() | null |
  -                       status().
  --type field_list()  :: [{atom(), stats_types()}]. %atom = any field name of rr_recon_stats record
  +-type field_list1()  ::
  +          [{tree_size, merkle_tree:mt_size()} |
  +               {tree_nodesCompared, non_neg_integer()} |
  +               {tree_compareSkipped, non_neg_integer()} |
  +               {tree_leafsSynced, non_neg_integer()} |
  +               {tree_compareLeft, non_neg_integer()} |
  +               {error_count, non_neg_integer()} |
  +               {build_time, non_neg_integer()} |
  +               {recon_time, non_neg_integer()} |
  +               {resolve_started, non_neg_integer()}].
  +
  +-type field_list2()  ::
  +          [{session_id, rrepair:session_id() | null} |
  +               {status, status()}] | field_list1().
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %% API Functions
  
positive.code: new() ->
      #rr_recon_stats{}.
  
  -spec new(field_list()) -> stats().
  new(KVList) ->
      set(KVList, #rr_recon_stats{}).
  
  % @doc increases the record field with name key by value
  -spec inc(field_list(), Old::Stats) -> New::Stats when
      is_subtype(Stats, stats()).
  inc([], Stats) -> 
      Stats;
  inc([{K, V} | L], Stats) ->
  
negative.code:          end,
      set(L, NS).
  
  -spec get(session_id, stats())         -> rrepair:session_id() | null;
           (tree_size, stats())          -> merkle_tree:mt_size();
           (tree_nodesCompared, stats()) -> non_neg_integer();
           (tree_compareSkipped, stats())-> non_neg_integer();
           (tree_leafsSynced, stats())   -> non_neg_integer();
           (tree_compareLeft, stats())   -> non_neg_integer();
           (error_count, stats())        -> non_neg_integer();
           (build_time, stats())         -> non_neg_integer();
           (recon_time, stats())         -> non_neg_integer();
           (resolve_started, stats())    -> non_neg_integer();
           (status, stats())             -> status().
  get(K, Stats) ->
      case K of
          session_id -> Stats#rr_recon_stats.session_id;
  