anchor.diff:        loop(LD#ld{subscribers=[Sub|LD#ld.subscribers]});
       %% fake trigger for debugging
       trigger ->
  -      report(LD,[test]),
  +      send_report(LD,test),
         loop(LD);
  +    %% data from user
  +    {user,Data} -> 
  +      NLD = LD#ld{userData=Data},
  +      loop(try do_user(check_jailed(NLD,userData)) catch _:_ -> NLD end);
       %% data from prfTarg
       {{data,_},Data} ->
         NLD = LD#ld{prfData=Data},
  
positive.code:   LD#ld{jailed=[What|LD#ld.jailed]}.
  
  do_mon(LD) ->
    report(LD,[sysMon]),
    LD.
  
  do_triggers(LD) ->
    {Triggered, NewTriggers} = check_triggers(LD#ld.triggers,LD#ld.prfData),
    [report(LD,Trig) || Trig <- Triggered],
    LD#ld{triggers=NewTriggers}.
  
  check_triggers(Triggers,Data) -> 
  
negative.code:     F when is_function(F)  -> {ID,F}
    end.
  
  send_report(LD,Trigger) ->
    Report = make_report(Trigger,LD),
    [Sub(Report) || Sub <- LD#ld.subscribers].
  
  make_report(user,LD) ->
    [{?MODULE,user},{userData,LD#ld.userData}];
  make_report(sysMon,LD) ->
    [{?MODULE,sysMon}|expand_ps(LD#ld.monData)];
  make_report(Trigger,LD) ->
    [{?MODULE,Trigger}|maybe_procs(LD)++generic_report(LD#ld.prfData)].
  