let rec last = function | [ h ] -> Some h | h :: t -> last t | [] -> None last [ "a" ; "b" ; "c" ; "d" ] last ([ ] : int list)