let equal te a b =
match te with
| C_int _ | C_float _ -> F.p_eq a b
| C_pointer t ->
let obj = object_of t in
M.equal_loc (M.loc_of_term obj a) (M.loc_of_term obj b)
| C_comp comp -> eq_record comp (F.unwrap a) (F.unwrap b)
| C_array arr -> eq_array arr (F.unwrap a) (F.unwrap b)