let choose p a =
  let select x = if p x then raise(Found(x)) in
    try
      iter select a;
      raise Not_found
    with
        Found(x) -> x