in
aux []
+let list_iter_sep ~sep f =
+ let rec aux =
+ function
+ | [] -> ()
+ | [ last ] -> f last
+ | hd :: tl -> f hd; sep (); aux tl
+ in
+ aux
+
let rec list_findopt f l =
let rec aux k = function
| [] -> None
in
aux 0 l
-let split_nth n l =
+let split_nth msg n l =
let rec aux acc n l =
match n, l with
| 0, _ -> List.rev acc, l
- | n, [] -> raise (Failure "HExtlib.split_nth")
+ | n, [] -> raise (Failure ("HExtlib.split_nth: " ^ msg))
| n, hd :: tl -> aux (hd :: acc) (n - 1) tl in
aux [] n l