method learn examples =
(* try to learn as long as the function can provide us with examples *)
let rec loop () =
let example = examples self in
match example with
None -> ()
| Some example -> self#train example; loop ()
in loop ()