Beloch.ParseSource-to-AST parsing, shared by Beloch and Session.
Lives as its own leaf module (depends only on Lexer/Parser/ Sedlexing/Error) so that Session can call it without creating a cycle through the top-level Beloch module, which re-exports every other module in the library.
val parse : filename:string -> string -> Ast.program