code: public List<Type> capture(List<Type> ts) {
          List<Type> buf = List.nil();
          for (Type t : ts) {
              buf = buf.prepend(capture(t));
          }
          return buf.reverse();
      }
docs: Capture conversion as specified by the JLS.