let equal te a b =
    match te with
      | C_int _ | C_float _ | C_pointer _ -> F.p_eq a 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)