type stmt = Expr of Expr.expr_node | Print of Expr.expr_node and stmt_node = { stmt : stmt; pos : Error.code_pos } let show_stmt stmt = match stmt with Expr expr -> Expr.show_expr expr.expr | Print expr -> Expr.show_expr expr.expr let make_expr_stmt (pos : Error.code_pos) (expr : Expr.expr_node) : stmt_node = let stmt = Expr expr in { stmt; pos } let make_print (pos : Error.code_pos) (expr : Expr.expr_node) : stmt_node = let stmt = Print expr in { stmt; pos }