pub fn lower(ast: &Program) -> Result<Mir, InvalidProgram>
Lower a parsed dice program to MIR. Currently infallible, as the parser already rejects ill-typed programs.