code: private List<Type> filterVars(Filter<UndetVar> fu) {
          ListBuffer<Type> res = new ListBuffer<>();
          for (Type t : undetvars) {
              UndetVar uv = (UndetVar)t;
              if (fu.accepts(uv)) {
                  res.append(uv.qtype);
              }
          }
          return res.toList();
      }
docs: /* Returns the corresponding inference variables.