code: public Selection restrictArgumentType(int arg, Class type) {
          List<Function> lst;
          int i;
          Class tmp;
          Class[] paras;
  
          lst = new ArrayList<Function>();
          for (i = 0; i < functions.length; i++) {
              paras = functions[i].getParameterTypes();
              if (arg < paras.length) {
                  tmp = paras[arg];
                  tmp = ClassRef.wrappedType(tmp);
                  if (tmp.isAssignableFrom(type)) {
                      lst.add(functions[i]);
                  }
              }
          }
          return new Selection(lst);
      }
docs: --