anchor.diff:  
   %% Arithmetic
   
  --spec range_add(#range{}, #range{}) -> #range{}.
  +-spec range_add(range(), range()) -> range().
   
   range_add(Range1, Range2) ->
     NewMin = inf_add(range__min(Range1), range__min(Range2)),
  
positive.code:     NewR -> Ann#ann{range = NewR, count = C+1}
    end.
  
  -spec type_to_ann(erl_types:erl_type()) -> #ann{}.
  
  type_to_ann(Type) ->
    #ann{range = range_from_simple_type(Type), type = t_limit(Type,1), count = 1}.
  
  -spec make_range_anno(#ann{}) -> range_anno().
  
  make_range_anno(Ann) ->
    {range_anno, Ann, fun pp_ann/1}. 
  
  -spec update_three(#range{}, #range{}, #range{}) -> #range{}.
  
  update_three(_R1, R2, R3) ->
    inf(R2, R3).
  
  -spec safe_widen(#range{}, #range{}, #range{}) -> #range{}.
  
  safe_widen(#range{range=Old}, #range{range=New}, T = #range{range=Wide}) ->
    ResRange =
  
negative.code: 
  %%== Ranges ==================================================================
  
  -spec pp_ann(ann() | erl_types:erl_type()) -> string().
  
  pp_ann(#ann{range = #range{range = R, other = false}}) ->
    pp_range(R);
  