let value_of_term = function
| Ast.Num (s, _) -> NumValue s
let value_of_term = function
| Ast.Num (s, _) -> NumValue s
| t -> TermValue t
let term_of_value = function
| NumValue s -> Ast.Num (s, 0)
| t -> TermValue t
let term_of_value = function
| NumValue s -> Ast.Num (s, 0)