private String writeArray(List<PVariable> affectedVars) {
   String ret = "";
   for (PVariable v : affectedVars) {
     ret += v.getName() + ",";
   }
   ret = ret.substring(0, ret.length() - 1);
   return ret;
 }
 public boolean IsAllAffectedVariablesMatched(HashMap<PVariable, Object> matchingVariables) {
   // mhm, can be evaluated when not all variables bound? no
   for (PVariable one : this.affectedVariables) {
     if (one.isVirtual() == false
         && Utils.isRunning(one) == false
         && matchingVariables.get(one) == null) return false;
   }
   return true;
 }