anchor.diff:  
   %% Move the process to the blocked set.
   handler(block, Lid,
  -	#context{active = Active, blocked = Blocked, details = Det} = Context,
  +		#context{active = Active, blocked = Blocked, details = Det} = Context,
           _Misc) ->
       NewActive = ?SETS:del_element(Lid, Active),
       NewBlocked = ?SETS:add_element(Lid, Blocked),
  
positive.code: -type analysis_info() :: {analysis_target(), non_neg_integer()}.
  
  -type analysis_options() :: ['details' |
  			     {'files', [file()]} |
  			     {'init_state', state:state()} |
  			     {'preb',  bound()}].
  
  %% Analysis result tuple.
  -type analysis_ret() :: {'ok', analysis_info()} |
                          {'error', 'instr', analysis_info()} |
                          {'error', 'analysis', analysis_info(),
  			 [ticket:ticket()]}.
  
  %% Module-Function-Arguments tuple.
  -type analysis_target() :: {module(), atom(), [term()]}.
  
negative.code: 
  %% Similar to above depending on options.
  handler(spawn_opt, ParentLid,
  		#context{active = Active, details = Det} = Context, {Ret, Opt}) ->
      {ChildPid, _Ref} =
  		case Ret of
  			{_C, _R} = CR -> CR;
  			C -> {C, noref}
  		end,
      link(ChildPid),
      ChildLid = lid:new(ChildPid, ParentLid),
      Opts = sets:to_list(sets:intersection(sets:from_list([link, monitor]),
  										  sets:from_list(Opt))),
      log_details(Det, {spawn_opt, ParentLid, ChildLid, Opts}),
      NewActive = ?SETS:add_element(ChildLid, Active),
      Context#context{active = NewActive};
  