code: public void adapt(Type source,
                         Type target,
                         ListBuffer<Type> from,
                         ListBuffer<Type> to) throws AdaptFailure {
          new Adapter(from, to).adapt(source, target);
      }
docs: Adapt a type by computing a substitution which maps a source
  type to a target type.
  
  @param source    the source type
  @param target    the target type
  @param from      the type variables of the computed substitution
  @param to        the types of the computed substitution.