public static <A, T, M> Map<M, T> yieldValues(Map<M, A> map,
			F1<A, T> function1) {
		HashMap<M, T> result = new HashMap<M, T>(map.size());
		for (Map.Entry<M, A> entry : map.entrySet()) {
			result.put(entry.getKey(), function1.e(entry.getValue()));
		}
		return result;
	}