anchor.diff:  %% the worst the condition. The list is sorted accordingly.
   -spec sbcs_to_mbcs(max | current) -> [allocdata(term())].
   sbcs_to_mbcs(Keyword) ->
  -    Pos = key2pos(Keyword),
       WeightedList = [begin
  -      LS = proplists:get_value(sbcs, Props),
  -      LM = proplists:get_value(mbcs,Props),
  -      Sbcs = element(Pos, lists:keyfind(blocks,1,LS)),
  -      Mbcs = element(Pos, lists:keyfind(blocks,1,LM)),
  +      Sbcs = container_value(Props, Keyword, sbcs, blocks),
  +      Mbcs = container_value(Props, Keyword, mbcs, blocks),
         Ratio = case {Sbcs, Mbcs} of
           {0,0} -> 0;
           {_,0} -> infinity; % that is bad!
  
positive.code:                              Props),
      [{AI,NewProps}|conv_alloc(R,Factor)];
  conv_alloc([{AI,Props}|R], Factor) ->
      FactorFun = fun({T,Curr,Last,Max}) when
                            T =:= blocks_size; T =:= carriers_size;
                            T =:= mseg_alloc_carriers_size;
                            T =:= sys_alloc_carriers_size ->
  
negative.code: %% carriers.
  -spec fragmentation(current | max) -> [allocdata([{atom(), term()}])].
  fragmentation(Keyword) ->
      WeighedData = [begin
        BlockSbcs = container_value(Props, Keyword, sbcs, blocks_size),
        CarSbcs = container_value(Props, Keyword, sbcs, carriers_size),
        BlockMbcs = container_value(Props, Keyword, mbcs, blocks_size),
        CarMbcs = container_value(Props, Keyword, mbcs, carriers_size),
        {Weight, Vals} = weighed_values({BlockSbcs,CarSbcs},
                                        {BlockMbcs,CarMbcs}),
        {Weight, {Allocator,N}, Vals}
  