let promote a1 a2 =
match a1 , a2 with
| C_int i1 , C_int i2 -> C_int (i_convert i1 i2)
| C_float f1 , C_float f2 -> C_float (f_convert f1 f2)
| C_int _ , C_float _ -> a2
| C_float _ , C_int _ -> a1
| _ -> WpLog.not_yet_implemented
"promotion between arithmetics and pointer types"