p_shrink(&(array).data, (array).len, &(array).size); \
} while (0)
#define array_elt(array, n) (array).data[(n)]
#define array_ptr(array, n) (array).data + (n)
#define foreach(var, array) \
p_shrink(&(array).data, (array).len, &(array).size); \
} while (0)
#define array_elt(array, n) (array).data[(n)]
#define array_ptr(array, n) (array).data + (n)
#define foreach(var, array) \