Definitely. It doesn't prevent, say, off-by-one errors (and in general, errors when you manipulate several items of the same type), but if you structure your program correctly, you can be very confident about your code.
Though OCaml's errors are not always the most explicit or nicely written.
Though OCaml's errors are not always the most explicit or nicely written.