type_t *make_based_pointer_type(type_t *points_to,
type_qualifiers_t qualifiers, variable_t *variable);
type_t *make_array_type(type_t *element_type, size_t size,
type_qualifiers_t qualifiers);
type_t *duplicate_type(const type_t *type);
type_t *make_based_pointer_type(type_t *points_to,
type_qualifiers_t qualifiers, variable_t *variable);
type_t *make_array_type(type_t *element_type, size_t size,
type_qualifiers_t qualifiers);
type_t *duplicate_type(const type_t *type);