public static <A,B extends Comparable<B>> List<A> sort(List<A> list, final F1<A,B> keyF ) {
		if (keyF==null) {
			return list;
		}
		Collections.sort(list, new Comparator<A>() {public int compare(A a1, A a2) {
			return keyF.e(a1).compareTo(keyF.e(a2));
		}});
		return list;
	}

//	FOOL
//	
//	public static Object getKeyEquals(Object key, Map map) {
//		for (Iterator iter = map.keySet().iterator(); iter.hasNext();) {
//			Object keyInMap = (Object) iter.next();
//			
//			System.out.println("Checking key " + keyInMap);
//			
//			if (keyInMap.equals(key)) {
//				System.out.println("Found equals");
//				return map.get(keyInMap);
//			}
//		}
//		return null;
//	}