anchor.diff:  -type allocdata(T) :: {{allocator(), instance()}, T}.
   -export_type([allocator/0, instance/0, allocdata/1]).
   
  -%% sbcs: single-block carriers
  -%% mbcs: multiblock carriers
  --define(CURRENT_POS, 2). % pos in sizes tuples
  --define(MAX_POS, 4). % pos in sizes tuples
  +-define(CURRENT_POS, 2). % pos in sizes tuples for current value
  +-define(MAX_POS, 4). % pos in sizes tuples for max value
   
   -export([memory/1, fragmentation/1, cache_hit_rates/0, average_sizes/0,
            sbcs_to_mbcs/0, allocators/0]).
  
positive.code: %%% @doc Functions to deal with Erlang's memory allocators
  %%% http://www.erlang.org/doc/man/erts_alloc.html
  %%% This module is not to be considered stable yet.
  %%%
  %%% Glossary:
  %%%  - `sbcs': single-block carriers.
  %%%  - `mbcs': multiblock carriers.
  %%%
  %%% All sizes returned by this module are in bytes.
  %%%
  %%% @todo extend definitions and docs
  -module(recon_alloc).
  %% specific allocators. Not included: 
  %% - sys_alloc (malloc)
  %% - mseg_alloc used by other allocs, mmap-only. Caches allocations.
  -define(ALLOCATORS, [temp_alloc,    % used for temporary allocations
                       eheap_alloc,   % heap data (i.e. process heaps)
                       binary_alloc,  % global binary heap
                       ets_alloc,     % ETS data
                       driver_alloc,  % driver data
                       sl_alloc,      % short lived memory blocks
                       ll_alloc,      % long-libed data (i.e. Erlang code)
                       fix_alloc,     % frequently used fixed-size data
                       std_alloc      % other memory blocks
                      ]).
  
  -type allocator() :: temp_alloc | eheap_alloc | binary_alloc | ets_alloc
  
negative.code: %% hence being commented.
  %
  %allocators() ->
  %    {ok,[Term]} = file:consult("alloc.dat"),
  %    dump_to_allocators(Term).
  %
  %%% Convert an existing allocator dump to a format this module can manage
  