let rec pretty fmt = function
  | C_int i -> pp_int fmt i
  | C_float f -> pp_float fmt f
  | C_pointer _ -> Format.pp_print_string fmt "pointer"
  | C_comp c -> Format.pp_print_string fmt c.cname
  | C_array a ->
      let te = object_of a.arr_element in
      match a.arr_flat with
        | None -> Format.fprintf fmt "%a[]" pretty te
        | Some f -> Format.fprintf fmt "%a[%s]" pretty te
            (Int64.to_string f.arr_size)