Double semicolon peculiarity

# print_endline "NB.";; total nonsense here
NB.
- : unit = ()

the toplevel reads in lines until it sees a ;;, then it ignores everything after that and tries to interprets everything before it as valid OCaml code. The ‘comments’ that you had after ;; were just ignored.