let boolean_of_value = function
    | M.V_int(_,t) -> boolean_of_int t
    | M.V_float(_,t) -> boolean_of_float t
    | M.V_pointer(_,loc) -> boolean_of_ptr (M.pointer_of_loc loc)
    | _ -> assert false