code: @Pure
  	public static <T, R> List<R> map(List<T> original, Function1<? super T, ? extends R> transformation) {
  		return Lists.transform(original, new FunctionDelegate<T, R>(transformation));
  	}
docs: Returns a list that performs the given {@code transformation} for each element of {@code original} when
  requested. The mapping is done lazily. That is, subsequent iterations of the elements in the list will
  repeatedly apply the transformation. The returned list is a transformed view of {@code original}; changes to
  {@code original} will be reflected in the returned list and vice versa (e.g. invocations of {@link List#remove(int)}).
  
  
  @param original
  the original list. May not be <code>null</code>.
  @param transformation
  the transformation. May not be <code>null</code>.
  @return a list that effectively contains the results of the transformation. Never <code>null</code>.