val evaluate : Types.memory -> Types.t_exp -> (Types.permitted_values, [> Types.error]) result val reduce : Types.t_exp -> int -> (int, [> Types.error]) result