let rec basename = function
| C_int _ -> "int"
| C_float _ -> "float"
| 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