let rec basename = function
| C_int i -> Pretty_utils.sfprintf "%a" pp_int i
| C_float f -> Pretty_utils.sfprintf "%a" pp_float f
| C_pointer _ -> "pointer"
| C_comp c -> c.cname
| C_array a ->
let te = basename (object_of a.arr_element) in
match a.arr_flat with
| None -> te ^ "_array"
| Some f -> te ^ "_" ^ Int64.to_string f.arr_size