let compare a b =
match a,b with
| C_int i, C_int i' -> compare_c_int i i'
| C_float f , C_float f' -> compare_c_float f f'
| C_pointer te , C_pointer te' -> Typ.compare te te'
| C_comp c , C_comp c' -> Compinfo.compare c c'
| C_array a , C_array a' -> AinfoComparable.compare a a'
| _ ->
let k1 = basetype a in
let k2 = basetype b in
assert (k1<>k2) ;
k1 - k2