public static <A> Douce<A, Double> findMax(Collection<A> col, F1<A, Double> f1) {
		double max = Double.MIN_VALUE;
		A cur = null;
		for (A a : col) {
			Double val = f1.e(a);
			if ( cur == null || val > max) {
				max = val;
				cur = a;
			}
		}
		return new Douce<A, Double>(cur, max);
	}