struct psi_decl_type *psi_decl_type_init(token_t type, zend_string *name);
struct psi_decl_type *psi_decl_type_copy(struct psi_decl_type *src);
void psi_decl_type_free(struct psi_decl_type **type_ptr);
struct psi_decl_type *psi_decl_type_init(token_t type, zend_string *name);
struct psi_decl_type *psi_decl_type_copy(struct psi_decl_type *src);
void psi_decl_type_free(struct psi_decl_type **type_ptr);
bool psi_decl_type_validate(struct psi_data *data, struct psi_decl_type *type,
struct psi_decl_arg *def, struct psi_validate_scope *scope);
bool psi_decl_type_validate(struct psi_data *data, struct psi_decl_type *type,
struct psi_decl_arg *def, struct psi_validate_scope *scope);