Module Mlang.Mir_typechecker

val typecheck : Mir_interface.full_program -> Mir_interface.full_program
val expand_functions_expr : 'var Mir.expression_ Pos.marked -> 'var Mir.expression_ Pos.marked

Most functions are just syntactic sugar for operations expressible with the rest of the language, so we expand these.

val expand_functions : Mir_interface.full_program -> Mir_interface.full_program

Calls expand_functions_expr on the whole program