List<Type> save(){
  ListBuffer<Type> buf=new ListBuffer<>();
  for (  Type t : undetvars) {
    UndetVar uv=(UndetVar)t;
    UndetVar uv2=new UndetVar((TypeVar)uv.qtype,types);
    for (    InferenceBound ib : InferenceBound.values()) {
      for (      Type b : uv.getBounds(ib)) {
        uv2.addBound(ib,b,types);
      }
    }
    uv2.inst=uv.inst;
    buf.add(uv2);
  }
  return buf.toList();
}

List < Type > save ( ) { ListBuffer < Type > buf = new ListBuffer < > ( ) ; for ( Type t : undetvars ) { UndetVar uv = ( UndetVar ) t ; UndetVar uv2 = new UndetVar ( ( TypeVar ) uv . qtype , types ) ; for ( InferenceBound ib : InferenceBound . values ( ) ) { for ( Type b : uv . getBounds ( ib ) ) { uv2 . addBound ( ib , b , types ) ; } } uv2 . inst = uv . inst ; buf . add ( uv2 ) ; } return buf . toList ( ) ; }
save the state of this inference context
