This could go on and on so I'll only file one issue for it. I'll collect all the confusing parts of semicolon here.
switch x {
| a => 5;
}
MyModule.(bla;)
let f => blablabla
let a = 5;
if (true) {
...
}
let a = 5;
And this is a bit nuanced, formatting this will succeed by with the wrong result (f slurped inside else block):
if (true) {a} else {b}
f ();
It will be good to have ASI or remove the semicolons from the language and have the return keyword may be