anchor.diff:             , "Proc: 'all'|pid()|atom(Regname)|{'pid',I2,I3}"
              , "Targ: node()"
              , "RMSs: (restricted match specs): list(RMS)"
  -           , "RMS: 'stack'|'return'|tuple(ArgDescriptor)"
  +           , "RMS: 'stack'|'return'|integer(Arity)|tuple(ArgDescriptor)"
              , "ArgDescriptor: '_'|literal()"
              , ""
              , "Opts: list({Opt,Val})"
  
positive.code: chk_msgs(Msgs) when is_integer(Msgs) -> Msgs;
  chk_msgs(X) -> exit({bad_msgs,X}).
  
  chk_trc('send',{Flags,RTPs}) -> {['send'|Flags],RTPs};
  chk_trc('receive',{Flags,RTPs}) -> {['receive'|Flags],RTPs};
  chk_trc(RTP,{Flags,RTPs}) when is_tuple(RTP) -> {Flags,[chk_rtp(RTP)|RTPs]};
  chk_trc(X,_) -> exit({bad_trc,X}).
  
  chk_rtp({M})                             -> chk_rtp({M,'_',[]});
  chk_rtp({M,F}) when is_atom(F)           -> chk_rtp({M,F,[]});
  
negative.code:     Cnf#cnf.max_queue,
      Cnf#cnf.max_msg_size}}.
  
  maybe_arity(#cnf{arity=true},Flags) -> [arity|Flags];
  maybe_arity(_,Flags)                -> Flags.  
  
  chk_time(Time) when is_integer(Time) -> Time;
  chk_time(X) -> exit({bad_time,X}).
  
  