os << "> in " << sd.domain();
os << " }"; if (vs.constant() != NULL) { os << ' ' << *vs.constant(); } os << " NCD{"; for (const VariableChain* vc = vs.ncd_set(); vc != NULL; vc = vc->tail) { os << ' ' << *vc->head; } os << " }";
ostream& operator<<(ostream& os, const StepDomain& sd) {  os << "<";  for (VarListIter vi = sd.parameters().begin();       vi != sd.parameters().end(); vi++) {    if (vi != sd.parameters().begin()) {      os << ' ';    }    os << **vi;  }  os << "> in " << sd.domain();  return os;}