type 'a valeur = Trouve of 'a | Perdu let rec cherche aiguille botte_de_paille = match p with brin :: botte -> if aiguille brin then Trouve brin else cherche aiguille botte | [] -> Perdu let k = match cherche (fun x -> fsx x = "Georges") [ "Louis", 14; "Georges", 5;] with | Trouve x -> x | Perdu -> 10