Привет, я изучаю OCaml и ФП в частности. Вот функция которая идет по тексту и выкидывает комментарии вида /* ... */. Простенькая задачка

Может как-то покрасивше написать можно? Что хорошо получилось, что — плохо? Есть ощущение что многа букаф) В частности, принимаются замечания по coding style, но с обоснованиями.
let substr s from n =
let slen = String.length s in
let last = from + n in
let nmin = (min slen last) - from
in String.sub s from nmin;;
let strrange s i j = substr s i (j - i);;
let findComments src =
let slen = String.length src in
let rec loop i =
if i < slen then
match substr src i 2 with
| "/*" -> let rec findEnd j = match substr src j 2 with
| "*/" -> (i, j + 2) :: loop (j + 2)
| _ -> findEnd (j + 1) in
findEnd (i + 2)
| _ -> loop (i + 1)
else
[]
in loop 0;;
let removeCommentsImpl src lst =
let slen = String.length src in
let rec aux i =
function
| [] -> strrange src i slen
| (a, b) :: tail -> (strrange src i a) ^ aux b tail
in aux 0 lst;;
let removeComments src = removeCommentsImpl src (findComments src);;
Спасибо.