Parse top-level declarations (with some test-cases)
Convert top-level declarations into Ast_dec values.
An approach to handling optional semicolons at the end of declarations.

I don’t believe this to be ideal; in particular, it doesn’t handle

  let ; in 3 end;

which is valid SML.