> The idea is you can write this:
>
> let _ = print_string "foo"
> let _ = print_string "bar"
>
> at the top level.
Ah. Well, the solution is not use "let _" or ";;", the solution is to avoid sociopathic code like that. Module definition with built-in, unavoidable side effects are evil.
You need at least one module that does something at top-level, otherwise your program won't do anything.
Of course you can write
(which isn't at issue, except no semicolons are needed.)But you can't write
without semicolons.