(** [find] *)

Lemma filter_rev (l : list A) : filter (rev l) = rev (filter l).
Fixpoint partition (l:list A) : list A * list A :=
match l with
| [] => ([], [])
| x :: tl => let (g,d) := partition tl in
if f x then (x::g,d) else (g,x::d)
end.