Umm... I'd use the SIGNAL event... with hash tables...


Code:
raw *:*: {
   if $hget(h.numeric) { /.hfree h.numeric }
      /.hmake h.numeric 100
      /.hadd h.numeric NUMERIC $numeric
      /.hadd h.numeric STRING $1-
      /.hadd h.numeric HALTED $false
      /.hadd h.numeric SHOWN $false
      ;-- ETC add additional elements as needed

      /.signal -n $+(N.,$numeric) $1-

      if ($hget(h.numeric,HALTED)) { 
         if $debgging /echo RAW $numeric HALTED
         halt
      }
      /.hfree h.numeric
   }
}


Er anyhow you get the idea... that is if you understand the advantage of using SIGNAL events.