* @param separate
	 * @return matched , not matched
	 */
	public static <A> Douce<List<A>,List<A>> separate(Iterable<A> col, F1<A,Boolean> separate) {
		LinkedList<A> matcheds = new LinkedList<A>();
		LinkedList<A> notMatcheds = new LinkedList<A>();
		for (A a : col) {
			if (separate.e(a)) {
				matcheds.add(a);
			} else {
				notMatcheds.add(a);
			}
		}
		return new Douce<List<A>, List<A>>(matcheds, notMatcheds);
	}