OCaml actually has correct block comments by his definition (and no line comments). This does lead to the odd fact that you can't have an unterminated string literal in a comment, which usually isn't a problem, but can be surprising.
# let x = ref 0;;
val x : int ref = {contents = 0}
# let y = ref 0;;
val y : int ref = {contents = 0}
# if false then
x := 1;
y := 1;
;;
- : unit = ()
# (!x, !y);;
- : int * int = (0, 1)
# y := 0;;
- : unit = ()
# if false then
let z = 1 in
x := z;
y := z;
;;
- : unit = ()
# (!x, !y);;
- : int * int = (0, 0)