Yes, it uses ML-style type inference, but that doesn't mean you are literally unable to annotate types, and the compiler is absolutely still doing type checking. I'm sure people like Jane Street annotate everything.
In addition, perhaps a small point relative to the first, but in Ocaml, the arithmetic operators perform no type inference; there's a separate operator for float-addition versus int-addition, and so on. This somewhat limits your exposure to potential automatic type conversions.
At least in similar languages like Haskell, what you do is let the compiler infer types and then press an IDE key combination to write out those inferred types as part of your code so you would get an error if you ever accidentally change the types.
In addition, perhaps a small point relative to the first, but in Ocaml, the arithmetic operators perform no type inference; there's a separate operator for float-addition versus int-addition, and so on. This somewhat limits your exposure to potential automatic type conversions.