anchor.diff:  %%  call, which specifies the data points to be returned. The probe is
   %%  expected to gather the given data points and return them to the
   %%  caller.
  -%% 
  +%%
   %% == The probe callback interface ==
   %%
   %% The following functions are to be implemented and exported by a probe
   %% implementation.
   %%
   %% === behaviour/0 ===
  -%% 
  +%%
   %% The `behaviour/0' function for an entry implementation should return
   %% the atom `probe'. This function will be involved by the
   %% exometer system in order to determine if a callback is
   %% an entry or a probe.
  -%% 
  +%%
   %% === probe_init/3 ===
   %% The `probe_init/3' function is invoked as follows:
  -%% 
  +%%
   %% <pre lang="erlang">
   %%      probe_init(Name, Type, Options)</pre>
  -%% 
  +%%
   %% The implementation shall initiate the probe, create the
   %% necessary state, and return it for furure access
   %% through `probe_update/2', `probe_sample/1' and `get_value/2' calls.
  -%% 
  +%%
   %% The arguments are as follows:
   %%
   %% + `Name'
  -%%     Specifies the name of the metric to be created as a list of atoms. 
  -%% 
  +%%     Specifies the name of the metric to be created as a list of atoms.
  +%%
   %% + `Type'
   %%     Specifies the type provided to the `exometer:new/3' call (before it
   %%     was translated by the type - exometer probe map). It can be used if several
   %%     different types are mapped to the same probe module.
  -%% 
  +%%
   %% + `Options'
   %%     Specifies an option list that contains additional setup directives to
  -%%     the probe. The actual options to support are a combination of the 
  +%%     the probe. The actual options to support are a combination of the
   %%     standard options, described below, and probe specific options
   %%     processed by `probe_init/3'.
  -%% 
  +%%
   %% Standard options are processed directly by `new/3', before
   %% `probe_init/3' is calledm and are as follows:
   %%
   %% + `{priority, P}'
  -%%     Will be forwarded by the probe's process to `erlang:process_flag/2'. 
  -%% 
  +%%     Will be forwarded by the probe's process to `erlang:process_flag/2'.
  +%%
   %% + `{min_heap_size, S}'
   %%     Will be forwarded by the probe's process to `erlang:process_flag/2'.
  -%% 
  +%%
   %% + `{min_bin_vheap_size, S}'
   %%     Will be forwarded by the probe's process to `erlang:process_flag/2'.
  -%% 
  +%%
   %% + `{sensitive, true | false}'
   %%     Will be forwarded by the probe's process to `erlang:process_flag/2'.
  -%% 
  +%%
   %% + `{sample_interval, t}'
   %%     Specifies the interval, in milliseconds, that `erlang:process_flag/2'.
   %%     should be invoked at.
  -%% 
  +%%
   %% The `probe_init/3' implementation is invoked by `exometer:new/3',
   %% which calls `exometer_probe:new/3', which invokes the probe
   %% implementation..
  
positive.code: %% where `List' is the list of data points and their values described
  %% above. No new state is returned by this function.
  %%
  %% 
  %% === probe_get_datapoints/1 ===
  %% The `probe_get_datapoints/1' function is invoked as follows:
  %% 
  %% <pre lang="erlang">
  %%      probe_get_datapoints(State)</pre>
  %% 
  %% The `probe_get_datapoints/1' shall return a list with all data points
  %% supported by the probe
  %%
  
negative.code: 
              From ! {Ref, Reply },
              %% Return state with options and any non-duplicate original opts.
              NSt1#st {
                opts = Opts1 ++
                [{K,V} || {K,V} <- St#st.opts, not lists:keymember(K,1,Opts1) ]
               };
  
          {timeout, _TRef, {exometer_proc, sample_timer}} ->
              sample(St);
  
          {exometer_proc, delete} ->
  